Data preparation
NAs introduced by coercionNAs introduced by coercionNAs introduced by coercionNAs introduced by coercionNAs introduced by coercionNAs introduced by coercion‘-’ not meaningful for factorsJoining, by = c("study", "subid", "target", "happy", "depressed", "fear", "angry", "calm", "sounds", "seeing", "temperature", "odors", "depth", "computations", "thoughts", "reasoning", "remembering", "beliefs", "hungry", "tired", "pain", "nauseated", "safe", "love", "recognizing", "communicating", "guilt", "disrespected", "free_will", "choices", "self_restraint", "intentions", "goal", "conscious", "self_aware", "desires", "embarrassed", "emo_recog", "joy", "morality", "personality", "pleasure", "pride", "CATCH")
Joining, by = c("study", "subid")
back to TOC
Analysis plan
For all studies we conduct exploratory factor analyses using Pearson correlations to find minimum residual solutions.
For each study, we first examine maximal unrotated and rotated solutions. To determine the maximum number of factors to extract, we use the following rule of thumb: With \(p\) observations per participant, we can extract a maximum of \(k\) factors, where \((p-k)*2 > p+k\), i.e., \(k < p/3\). Thus, with 40 mental capacity items, we can extract a maximum of 13 factors.
To determine how many factors to retain, we use the following preset retention criteria, considering the unrotated maximal solution (unless otherwise noted):
- Each factor must have an eigenvalue >1.0.
- Each factor must individually account for >5% of the total variance in the maximal model.
- After rotation, each factor must be the dominant factor (i.e., the factor with the highest factor loading) for ≥1 mental capacity item.
We then examine and interpret varimax-rotated solutions, extracting only the number of factors that meet these criteria.
Note: For Studies 1-2, we initially planned to conduct dimension reduction analyses for each condition (beetle vs. robot) separately. However, we now consider this analysis plan to have been fundamentally flawed: Each of these separate analyses is only capable of surfacing factors that highlight substantial disagreement among participants within that condition thus failing to capture key differences in attributions of mental capacities to beetles vs. robots, with no formal means of synthesizing results across conditions. Nonetheless, the results of these analyses are generally consistent with the findings reported here: The most prominent and reliable finding within each condition is that participants distinguish between emotional and perceptual varieties of experience. See https://osf.io/zd3mu for the preregistered analyses, including analysis scripts.
Study 1
Design: 2 conditions (beetle, robot), between-subjects Date conducted: 2015-12-15
Demographics
NAs introduced by coercion
Joining, by = c("condition", "min_age", "max_age", "median_age", "mean_age", "sd_age")
joining character vector and factor, coercing into character vector
back to TOC
Exploratory factor analysis
Step 1: Run maximal EFA (without and with rotation)
Parallel analysis suggests that the number of factors = 3 and the number of components = 3

Factor Analysis using method = minres
Call: fa(r = d1_all, nfactors = 13, rotate = "none", fm = "minres",
cor = chosenCorType)
Standardized loadings (pattern matrix) based upon correlation matrix
MR1 MR2 MR4 MR3 MR6 MR5 MR7 MR8 MR9 MR11 MR10 MR12
happy 0.78 0.26 -0.08 0.29 -0.06 -0.20 -0.07 0.04 0.04 0.01 0.02 0.04
depressed 0.75 0.38 -0.21 0.10 -0.11 0.01 0.03 0.10 0.04 -0.04 -0.04 0.09
fear 0.74 -0.17 0.08 0.41 0.03 0.11 -0.12 0.09 0.02 -0.04 0.09 -0.01
angry 0.77 0.15 -0.05 0.23 -0.06 0.02 -0.01 0.16 0.08 -0.01 0.08 0.05
calm 0.74 0.03 0.11 0.25 0.11 0.00 -0.13 0.00 0.12 -0.01 0.03 0.05
sounds 0.11 0.16 0.59 -0.06 -0.30 -0.05 -0.14 -0.12 0.16 0.07 0.07 0.04
seeing 0.27 0.01 0.64 0.16 -0.25 0.09 0.04 -0.05 -0.04 -0.10 0.01 0.04
temperature 0.18 0.11 0.68 0.08 -0.25 0.06 -0.06 -0.03 -0.11 0.19 0.05 0.12
odors 0.37 -0.07 0.47 0.17 -0.24 0.06 0.01 -0.13 0.09 -0.06 -0.09 0.12
depth 0.22 0.25 0.53 -0.02 -0.11 0.01 0.04 -0.03 -0.03 0.09 0.04 -0.07
computations -0.35 0.66 0.22 -0.42 -0.03 0.00 -0.07 0.12 0.00 0.07 0.14 0.00
thoughts 0.67 0.26 0.08 0.30 0.15 -0.09 0.14 -0.04 0.04 -0.09 0.12 0.05
reasoning 0.26 0.61 0.34 -0.01 0.12 0.00 0.13 -0.09 -0.12 -0.08 0.02 -0.02
remembering 0.04 0.49 0.57 -0.16 0.03 -0.02 -0.09 0.07 -0.05 -0.01 -0.03 0.02
beliefs 0.48 0.57 -0.15 0.14 0.05 0.19 0.08 -0.14 -0.02 0.04 0.00 -0.01
hungry 0.64 -0.47 0.06 0.50 -0.07 0.07 0.05 -0.08 -0.01 0.02 -0.08 0.00
tired 0.74 -0.21 0.13 0.39 -0.02 0.04 0.03 0.08 0.04 0.14 -0.07 -0.14
pain 0.70 -0.37 0.11 0.48 -0.05 0.10 0.04 -0.01 -0.02 -0.04 0.11 -0.02
nauseated 0.98 -0.07 0.00 -0.15 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
safe 0.72 -0.02 0.10 0.36 0.15 -0.03 -0.40 -0.05 -0.03 -0.04 -0.05 -0.02
love 0.70 0.46 -0.19 0.26 -0.07 -0.02 -0.02 0.03 -0.01 0.01 0.03 0.05
recognizing 0.07 0.61 0.50 -0.23 -0.05 -0.01 0.01 0.00 0.10 -0.15 -0.09 -0.17
communicating 0.15 0.41 0.52 -0.01 0.00 0.08 -0.03 0.00 0.02 -0.17 -0.03 -0.16
guilt 0.62 0.47 -0.24 0.17 -0.07 0.15 0.02 -0.03 0.13 0.00 -0.06 0.08
disrespected 0.64 0.45 -0.21 0.10 -0.08 0.28 -0.06 0.11 0.09 0.00 -0.15 0.01
free_will 0.69 -0.02 0.06 0.39 0.11 -0.05 0.01 0.06 -0.03 -0.06 0.00 0.17
choices 0.32 0.26 0.55 0.14 0.23 0.02 0.08 0.07 -0.24 -0.04 -0.16 0.17
self_restraint 0.50 0.40 0.13 0.12 0.22 0.05 0.04 -0.13 0.23 0.05 -0.08 0.08
intentions 0.58 0.12 0.21 0.32 0.25 -0.02 0.05 0.09 0.05 0.26 -0.04 -0.03
goal 0.21 0.33 0.52 0.04 0.04 -0.01 0.19 0.20 -0.02 0.06 -0.16 -0.02
conscious 0.72 -0.03 0.09 0.33 0.08 0.02 0.07 -0.05 0.10 -0.01 0.10 0.01
self_aware 0.63 0.20 0.10 0.31 0.08 -0.01 0.15 0.04 0.14 -0.04 0.10 0.02
desires 0.74 0.00 0.06 0.34 0.18 -0.01 0.11 0.09 -0.03 -0.01 0.03 -0.03
embarrassed 0.59 0.55 -0.31 0.16 -0.08 0.27 -0.03 -0.01 -0.15 0.01 0.03 -0.04
emo_recog 0.45 0.61 0.02 0.07 0.09 0.17 0.13 -0.19 0.00 -0.01 0.04 -0.05
joy 0.80 0.32 -0.11 0.25 -0.07 -0.35 0.02 -0.03 -0.03 0.00 -0.02 -0.03
morality 0.31 0.62 0.08 0.07 0.20 0.07 -0.06 -0.28 0.01 0.16 0.09 0.00
personality 0.53 0.51 0.08 0.19 0.04 0.06 0.10 0.01 0.08 -0.03 0.02 0.03
pleasure 0.77 0.00 0.06 0.37 0.04 0.01 -0.01 0.19 -0.02 0.01 0.06 -0.06
pride 0.67 0.51 -0.22 0.17 -0.04 0.13 -0.02 -0.01 -0.03 -0.03 -0.02 -0.03
MR13 h2 u2 com
happy -0.06 0.82 0.179 1.8
depressed -0.07 0.80 0.196 1.9
fear 0.00 0.80 0.202 1.9
angry 0.02 0.71 0.286 1.5
calm 0.00 0.67 0.325 1.5
sounds 0.08 0.56 0.440 2.4
seeing 0.02 0.60 0.404 2.0
temperature 0.12 0.66 0.342 2.0
odors 0.07 0.51 0.492 3.6
depth 0.00 0.42 0.577 2.1
computations -0.04 0.84 0.162 2.9
thoughts 0.07 0.70 0.304 2.3
reasoning -0.09 0.62 0.378 2.5
remembering -0.09 0.62 0.384 2.3
beliefs 0.09 0.67 0.327 2.8
hungry -0.01 0.91 0.092 3.0
tired -0.10 0.83 0.171 2.1
pain -0.07 0.91 0.088 2.6
nauseated 0.00 1.00 0.005 1.1
safe 0.02 0.85 0.151 2.3
love -0.02 0.81 0.186 2.3
recognizing 0.00 0.76 0.245 2.8
communicating 0.02 0.53 0.470 2.7
guilt -0.05 0.75 0.252 2.8
disrespected 0.05 0.80 0.202 3.0
free_will 0.08 0.69 0.307 1.9
choices -0.10 0.68 0.320 4.1
self_restraint -0.07 0.59 0.406 3.6
intentions 0.07 0.64 0.360 3.1
goal 0.05 0.54 0.463 3.1
conscious -0.01 0.67 0.331 1.6
self_aware 0.00 0.61 0.388 2.2
desires 0.16 0.74 0.263 1.8
embarrassed -0.01 0.88 0.122 3.4
emo_recog 0.09 0.68 0.321 2.5
joy 0.01 0.94 0.055 2.1
morality -0.09 0.65 0.346 2.6
personality -0.11 0.62 0.385 2.6
pleasure 0.07 0.79 0.210 1.6
pride 0.06 0.81 0.185 2.4
MR1 MR2 MR4 MR3 MR6 MR5 MR7 MR8 MR9 MR11 MR10 MR12 MR13
SS loadings 13.54 5.47 3.85 2.61 0.70 0.49 0.41 0.40 0.31 0.27 0.23 0.22 0.18
Proportion Var 0.34 0.14 0.10 0.07 0.02 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.00
Cumulative Var 0.34 0.48 0.57 0.64 0.65 0.67 0.68 0.69 0.69 0.70 0.71 0.71 0.72
Proportion Explained 0.47 0.19 0.13 0.09 0.02 0.02 0.01 0.01 0.01 0.01 0.01 0.01 0.01
Cumulative Proportion 0.47 0.66 0.80 0.89 0.91 0.93 0.94 0.96 0.97 0.98 0.99 0.99 1.00
Mean item complexity = 2.4
Test of the hypothesis that 13 factors are sufficient.
The degrees of freedom for the null model are 780 and the objective function was 36.39 with Chi Square of 14185
The degrees of freedom for the model are 338 and the objective function was 0.9
The root mean square of the residuals (RMSR) is 0.01
The df corrected root mean square of the residuals is 0.02
The harmonic number of observations is 405 with the empirical chi square 67.74 with prob < 1
The total number of observations was 405 with MLE Chi Square = 343.92 with prob < 0.4
Tucker Lewis Index of factoring reliability = 0.999
RMSEA index = 0.014 and the 90 % confidence intervals are NA 0.02
BIC = -1685.39
Fit based upon off diagonal values = 1
Measures of factor score adequacy
MR1 MR2 MR4 MR3 MR6 MR5 MR7 MR8
Correlation of scores with factors 1.00 0.98 0.96 0.98 0.83 0.90 0.81 0.76
Multiple R square of scores with factors 1.00 0.96 0.92 0.95 0.69 0.81 0.65 0.58
Minimum correlation of possible factor scores 0.99 0.93 0.84 0.90 0.38 0.61 0.30 0.17
MR9 MR11 MR10 MR12 MR13
Correlation of scores with factors 0.72 0.68 0.70 0.66 0.63
Multiple R square of scores with factors 0.51 0.46 0.50 0.44 0.40
Minimum correlation of possible factor scores 0.03 -0.07 -0.01 -0.12 -0.20
Factor Analysis using method = minres
Call: fa(r = d1_all, nfactors = 13, rotate = "none", fm = "minres",
cor = chosenCorType)
Standardized loadings (pattern matrix) based upon correlation matrix
MR1 MR2 MR4 MR3 MR6 MR5 MR7 MR8 MR9 MR11 MR10 MR12
happy 0.78 0.26 -0.08 0.29 -0.06 -0.20 -0.07 0.04 0.04 0.01 0.02 0.04
depressed 0.75 0.38 -0.21 0.10 -0.11 0.01 0.03 0.10 0.04 -0.04 -0.04 0.09
fear 0.74 -0.17 0.08 0.41 0.03 0.11 -0.12 0.09 0.02 -0.04 0.09 -0.01
angry 0.77 0.15 -0.05 0.23 -0.06 0.02 -0.01 0.16 0.08 -0.01 0.08 0.05
calm 0.74 0.03 0.11 0.25 0.11 0.00 -0.13 0.00 0.12 -0.01 0.03 0.05
sounds 0.11 0.16 0.59 -0.06 -0.30 -0.05 -0.14 -0.12 0.16 0.07 0.07 0.04
seeing 0.27 0.01 0.64 0.16 -0.25 0.09 0.04 -0.05 -0.04 -0.10 0.01 0.04
temperature 0.18 0.11 0.68 0.08 -0.25 0.06 -0.06 -0.03 -0.11 0.19 0.05 0.12
odors 0.37 -0.07 0.47 0.17 -0.24 0.06 0.01 -0.13 0.09 -0.06 -0.09 0.12
depth 0.22 0.25 0.53 -0.02 -0.11 0.01 0.04 -0.03 -0.03 0.09 0.04 -0.07
computations -0.35 0.66 0.22 -0.42 -0.03 0.00 -0.07 0.12 0.00 0.07 0.14 0.00
thoughts 0.67 0.26 0.08 0.30 0.15 -0.09 0.14 -0.04 0.04 -0.09 0.12 0.05
reasoning 0.26 0.61 0.34 -0.01 0.12 0.00 0.13 -0.09 -0.12 -0.08 0.02 -0.02
remembering 0.04 0.49 0.57 -0.16 0.03 -0.02 -0.09 0.07 -0.05 -0.01 -0.03 0.02
beliefs 0.48 0.57 -0.15 0.14 0.05 0.19 0.08 -0.14 -0.02 0.04 0.00 -0.01
hungry 0.64 -0.47 0.06 0.50 -0.07 0.07 0.05 -0.08 -0.01 0.02 -0.08 0.00
tired 0.74 -0.21 0.13 0.39 -0.02 0.04 0.03 0.08 0.04 0.14 -0.07 -0.14
pain 0.70 -0.37 0.11 0.48 -0.05 0.10 0.04 -0.01 -0.02 -0.04 0.11 -0.02
nauseated 0.98 -0.07 0.00 -0.15 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
safe 0.72 -0.02 0.10 0.36 0.15 -0.03 -0.40 -0.05 -0.03 -0.04 -0.05 -0.02
love 0.70 0.46 -0.19 0.26 -0.07 -0.02 -0.02 0.03 -0.01 0.01 0.03 0.05
recognizing 0.07 0.61 0.50 -0.23 -0.05 -0.01 0.01 0.00 0.10 -0.15 -0.09 -0.17
communicating 0.15 0.41 0.52 -0.01 0.00 0.08 -0.03 0.00 0.02 -0.17 -0.03 -0.16
guilt 0.62 0.47 -0.24 0.17 -0.07 0.15 0.02 -0.03 0.13 0.00 -0.06 0.08
disrespected 0.64 0.45 -0.21 0.10 -0.08 0.28 -0.06 0.11 0.09 0.00 -0.15 0.01
free_will 0.69 -0.02 0.06 0.39 0.11 -0.05 0.01 0.06 -0.03 -0.06 0.00 0.17
choices 0.32 0.26 0.55 0.14 0.23 0.02 0.08 0.07 -0.24 -0.04 -0.16 0.17
self_restraint 0.50 0.40 0.13 0.12 0.22 0.05 0.04 -0.13 0.23 0.05 -0.08 0.08
intentions 0.58 0.12 0.21 0.32 0.25 -0.02 0.05 0.09 0.05 0.26 -0.04 -0.03
goal 0.21 0.33 0.52 0.04 0.04 -0.01 0.19 0.20 -0.02 0.06 -0.16 -0.02
conscious 0.72 -0.03 0.09 0.33 0.08 0.02 0.07 -0.05 0.10 -0.01 0.10 0.01
self_aware 0.63 0.20 0.10 0.31 0.08 -0.01 0.15 0.04 0.14 -0.04 0.10 0.02
desires 0.74 0.00 0.06 0.34 0.18 -0.01 0.11 0.09 -0.03 -0.01 0.03 -0.03
embarrassed 0.59 0.55 -0.31 0.16 -0.08 0.27 -0.03 -0.01 -0.15 0.01 0.03 -0.04
emo_recog 0.45 0.61 0.02 0.07 0.09 0.17 0.13 -0.19 0.00 -0.01 0.04 -0.05
joy 0.80 0.32 -0.11 0.25 -0.07 -0.35 0.02 -0.03 -0.03 0.00 -0.02 -0.03
morality 0.31 0.62 0.08 0.07 0.20 0.07 -0.06 -0.28 0.01 0.16 0.09 0.00
personality 0.53 0.51 0.08 0.19 0.04 0.06 0.10 0.01 0.08 -0.03 0.02 0.03
pleasure 0.77 0.00 0.06 0.37 0.04 0.01 -0.01 0.19 -0.02 0.01 0.06 -0.06
pride 0.67 0.51 -0.22 0.17 -0.04 0.13 -0.02 -0.01 -0.03 -0.03 -0.02 -0.03
MR13 h2 u2 com
happy -0.06 0.82 0.179 1.8
depressed -0.07 0.80 0.196 1.9
fear 0.00 0.80 0.202 1.9
angry 0.02 0.71 0.286 1.5
calm 0.00 0.67 0.325 1.5
sounds 0.08 0.56 0.440 2.4
seeing 0.02 0.60 0.404 2.0
temperature 0.12 0.66 0.342 2.0
odors 0.07 0.51 0.492 3.6
depth 0.00 0.42 0.577 2.1
computations -0.04 0.84 0.162 2.9
thoughts 0.07 0.70 0.304 2.3
reasoning -0.09 0.62 0.378 2.5
remembering -0.09 0.62 0.384 2.3
beliefs 0.09 0.67 0.327 2.8
hungry -0.01 0.91 0.092 3.0
tired -0.10 0.83 0.171 2.1
pain -0.07 0.91 0.088 2.6
nauseated 0.00 1.00 0.005 1.1
safe 0.02 0.85 0.151 2.3
love -0.02 0.81 0.186 2.3
recognizing 0.00 0.76 0.245 2.8
communicating 0.02 0.53 0.470 2.7
guilt -0.05 0.75 0.252 2.8
disrespected 0.05 0.80 0.202 3.0
free_will 0.08 0.69 0.307 1.9
choices -0.10 0.68 0.320 4.1
self_restraint -0.07 0.59 0.406 3.6
intentions 0.07 0.64 0.360 3.1
goal 0.05 0.54 0.463 3.1
conscious -0.01 0.67 0.331 1.6
self_aware 0.00 0.61 0.388 2.2
desires 0.16 0.74 0.263 1.8
embarrassed -0.01 0.88 0.122 3.4
emo_recog 0.09 0.68 0.321 2.5
joy 0.01 0.94 0.055 2.1
morality -0.09 0.65 0.346 2.6
personality -0.11 0.62 0.385 2.6
pleasure 0.07 0.79 0.210 1.6
pride 0.06 0.81 0.185 2.4
MR1 MR2 MR4 MR3 MR6 MR5 MR7 MR8 MR9 MR11 MR10 MR12 MR13
SS loadings 13.54 5.47 3.85 2.61 0.70 0.49 0.41 0.40 0.31 0.27 0.23 0.22 0.18
Proportion Var 0.34 0.14 0.10 0.07 0.02 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.00
Cumulative Var 0.34 0.48 0.57 0.64 0.65 0.67 0.68 0.69 0.69 0.70 0.71 0.71 0.72
Proportion Explained 0.47 0.19 0.13 0.09 0.02 0.02 0.01 0.01 0.01 0.01 0.01 0.01 0.01
Cumulative Proportion 0.47 0.66 0.80 0.89 0.91 0.93 0.94 0.96 0.97 0.98 0.99 0.99 1.00
Mean item complexity = 2.4
Test of the hypothesis that 13 factors are sufficient.
The degrees of freedom for the null model are 780 and the objective function was 36.39 with Chi Square of 14185
The degrees of freedom for the model are 338 and the objective function was 0.9
The root mean square of the residuals (RMSR) is 0.01
The df corrected root mean square of the residuals is 0.02
The harmonic number of observations is 405 with the empirical chi square 67.74 with prob < 1
The total number of observations was 405 with MLE Chi Square = 343.92 with prob < 0.4
Tucker Lewis Index of factoring reliability = 0.999
RMSEA index = 0.014 and the 90 % confidence intervals are NA 0.02
BIC = -1685.39
Fit based upon off diagonal values = 1
Measures of factor score adequacy
MR1 MR2 MR4 MR3 MR6 MR5 MR7 MR8
Correlation of scores with factors 1.00 0.98 0.96 0.98 0.83 0.90 0.81 0.76
Multiple R square of scores with factors 1.00 0.96 0.92 0.95 0.69 0.81 0.65 0.58
Minimum correlation of possible factor scores 0.99 0.93 0.84 0.90 0.38 0.61 0.30 0.17
MR9 MR11 MR10 MR12 MR13
Correlation of scores with factors 0.72 0.68 0.70 0.66 0.63
Multiple R square of scores with factors 0.51 0.46 0.50 0.44 0.40
Minimum correlation of possible factor scores 0.03 -0.07 -0.01 -0.12 -0.20
[1] 4
[1] 3
Step 2: Run EFA with varimax rotation
Factor Analysis using method = minres
Call: fa(r = d1_all, nfactors = nfactors_d1_all, rotate = chosenRotType,
fm = "minres", cor = chosenCorType)
Standardized loadings (pattern matrix) based upon correlation matrix
MR1 MR2 MR3 h2 u2 com
happy 0.55 0.65 0.10 0.74 0.26 2.0
depressed 0.37 0.78 0.03 0.75 0.25 1.4
fear 0.82 0.28 0.06 0.76 0.24 1.2
angry 0.58 0.57 0.08 0.67 0.33 2.0
calm 0.65 0.41 0.17 0.62 0.38 1.9
sounds 0.06 -0.05 0.61 0.38 0.62 1.0
seeing 0.36 -0.07 0.61 0.51 0.49 1.7
temperature 0.21 -0.06 0.66 0.48 0.52 1.2
odors 0.45 -0.01 0.43 0.39 0.61 2.0
depth 0.11 0.11 0.62 0.40 0.60 1.1
computations -0.74 0.19 0.44 0.78 0.22 1.8
thoughts 0.50 0.55 0.22 0.61 0.39 2.3
reasoning -0.06 0.47 0.57 0.55 0.45 2.0
remembering -0.20 0.17 0.72 0.59 0.41 1.3
beliefs 0.11 0.76 0.12 0.60 0.40 1.1
hungry 0.93 0.01 -0.08 0.87 0.13 1.0
tired 0.83 0.23 0.10 0.76 0.24 1.2
pain 0.93 0.10 0.01 0.87 0.13 1.0
nauseated 0.65 0.50 0.09 0.68 0.32 1.9
safe 0.70 0.36 0.13 0.63 0.37 1.6
love 0.37 0.81 0.06 0.79 0.21 1.4
recognizing -0.29 0.29 0.71 0.67 0.33 1.7
communicating -0.02 0.20 0.65 0.46 0.54 1.2
guilt 0.26 0.80 0.02 0.70 0.30 1.2
disrespected 0.25 0.78 0.04 0.68 0.32 1.2
free_will 0.70 0.37 0.09 0.63 0.37 1.5
choices 0.25 0.18 0.60 0.46 0.54 1.5
self_restraint 0.24 0.55 0.31 0.45 0.55 2.0
intentions 0.54 0.35 0.27 0.48 0.52 2.3
goal 0.09 0.17 0.62 0.42 0.58 1.2
conscious 0.70 0.36 0.12 0.64 0.36 1.6
self_aware 0.52 0.48 0.22 0.55 0.45 2.3
desires 0.69 0.40 0.11 0.66 0.34 1.7
embarrassed 0.19 0.85 -0.01 0.76 0.24 1.1
emo_recog 0.06 0.70 0.29 0.58 0.42 1.3
joy 0.51 0.70 0.10 0.76 0.24 1.9
morality -0.04 0.60 0.32 0.47 0.53 1.5
personality 0.23 0.66 0.31 0.58 0.42 1.7
pleasure 0.74 0.43 0.11 0.74 0.26 1.7
pride 0.28 0.85 0.05 0.80 0.20 1.2
MR1 MR2 MR3
SS loadings 9.92 9.81 5.17
Proportion Var 0.25 0.25 0.13
Cumulative Var 0.25 0.49 0.62
Proportion Explained 0.40 0.39 0.21
Cumulative Proportion 0.40 0.79 1.00
Mean item complexity = 1.6
Test of the hypothesis that 3 factors are sufficient.
The degrees of freedom for the null model are 780 and the objective function was 36.39 with Chi Square of 14185
The degrees of freedom for the model are 663 and the objective function was 3.81
The root mean square of the residuals (RMSR) is 0.03
The df corrected root mean square of the residuals is 0.03
The harmonic number of observations is 405 with the empirical chi square 500.89 with prob < 1
The total number of observations was 405 with MLE Chi Square = 1475.92 with prob < 8.7e-64
Tucker Lewis Index of factoring reliability = 0.928
RMSEA index = 0.057 and the 90 % confidence intervals are 0.051 0.059
BIC = -2504.66
Fit based upon off diagonal values = 1
Measures of factor score adequacy
MR1 MR2 MR3
Correlation of scores with factors 0.98 0.98 0.95
Multiple R square of scores with factors 0.97 0.95 0.91
Minimum correlation of possible factor scores 0.93 0.91 0.81
back to TOC
Study 2
Design: 2 conditions (beetle, robot), between-subjects (replication of Study 1) Date conducted: 2016-01-12
Demographics
Joining, by = c("condition", "min_age", "max_age", "median_age", "mean_age", "sd_age")
joining character vector and factor, coercing into character vector
back to TOC
Exploratory factor analysis
Step 1: Run maximal EFA (without and with rotation)
Parallel analysis suggests that the number of factors = 3 and the number of components = 3

Factor Analysis using method = minres
Call: fa(r = d2_all, nfactors = 13, rotate = "none", fm = "minres",
cor = chosenCorType)
Standardized loadings (pattern matrix) based upon correlation matrix
MR1 MR2 MR3 MR4 MR5 MR6 MR7 MR11 MR9 MR8 MR10 MR12
happy 0.84 0.15 -0.09 -0.22 0.04 -0.07 -0.02 0.04 -0.03 0.10 -0.01 0.06
depressed 0.79 0.31 -0.27 -0.09 -0.32 0.11 -0.01 0.00 -0.05 -0.01 -0.01 0.01
fear 0.80 -0.32 0.09 0.00 -0.03 -0.02 -0.06 -0.01 -0.03 0.05 0.15 0.09
angry 0.78 -0.01 -0.04 -0.07 0.02 -0.14 0.02 -0.01 -0.09 0.01 0.15 -0.06
calm 0.73 0.01 0.16 -0.21 0.17 -0.04 -0.01 0.05 0.09 0.06 -0.06 0.11
sounds 0.12 0.17 0.68 -0.07 -0.10 -0.09 0.13 -0.01 0.03 0.12 0.12 0.01
seeing 0.37 -0.05 0.65 0.14 -0.07 -0.06 0.00 -0.14 -0.05 0.06 -0.10 0.08
temperature 0.25 0.00 0.61 0.09 -0.24 -0.15 -0.09 0.15 0.13 0.00 0.02 -0.05
odors 0.44 -0.13 0.52 0.20 -0.25 -0.11 -0.23 0.17 0.09 0.01 -0.03 -0.09
depth 0.16 0.23 0.51 0.10 -0.10 -0.11 -0.09 0.14 0.00 -0.07 0.08 -0.04
computations -0.39 0.75 0.28 -0.09 -0.05 -0.05 0.08 0.02 0.06 -0.03 0.09 0.00
thoughts 0.75 0.10 0.11 -0.04 0.17 0.27 0.01 0.10 0.04 -0.02 -0.04 -0.04
reasoning 0.24 0.55 0.34 0.11 0.09 0.16 -0.11 0.10 -0.02 -0.10 -0.02 0.06
remembering 0.06 0.48 0.58 -0.07 0.01 0.01 0.10 -0.11 0.10 0.06 -0.06 0.06
beliefs 0.49 0.43 -0.07 0.18 -0.02 0.08 0.17 0.14 0.00 0.02 -0.12 0.20
hungry 0.69 -0.64 0.03 0.16 -0.06 -0.05 0.00 -0.02 0.02 0.01 -0.06 0.01
tired 0.77 -0.39 0.11 -0.01 0.01 -0.03 0.07 -0.04 -0.07 -0.03 0.05 0.03
pain 0.74 -0.52 0.07 0.08 -0.03 -0.02 0.02 -0.05 0.01 -0.07 0.07 0.02
nauseated 0.73 -0.08 -0.03 -0.02 -0.01 -0.08 0.03 -0.01 0.00 -0.07 0.06 0.11
safe 0.76 -0.17 0.11 -0.04 0.16 -0.04 -0.07 0.10 -0.06 0.16 -0.05 0.09
love 0.75 0.27 -0.20 -0.01 -0.02 0.02 0.12 -0.01 0.11 -0.05 0.02 -0.02
recognizing 0.07 0.63 0.44 -0.04 0.00 -0.07 0.01 -0.03 0.03 0.04 0.06 0.07
communicating 0.25 0.28 0.62 0.02 -0.15 -0.03 0.15 -0.19 0.00 -0.03 -0.01 0.01
guilt 0.64 0.47 -0.32 0.22 0.04 -0.12 0.02 -0.06 0.10 0.02 -0.10 -0.03
disrespected 0.63 0.36 -0.24 0.20 0.06 -0.08 -0.05 0.01 -0.05 0.09 0.19 -0.10
free_will 0.68 -0.27 0.14 0.05 -0.01 0.18 0.11 -0.13 0.03 0.02 0.05 -0.13
choices 0.37 0.22 0.59 -0.01 0.04 0.08 0.07 -0.08 -0.07 -0.06 -0.02 -0.01
self_restraint 0.42 0.40 0.14 0.17 0.15 0.13 -0.06 0.02 -0.01 -0.04 -0.08 -0.05
intentions 0.63 -0.06 0.31 0.10 0.12 0.16 0.23 0.08 -0.19 0.03 -0.07 -0.15
goal 0.30 0.23 0.59 0.00 -0.04 -0.02 0.05 0.08 -0.15 0.03 -0.16 -0.11
conscious 0.74 -0.25 0.15 -0.04 0.11 0.27 -0.04 0.02 0.11 0.13 0.02 0.05
self_aware 0.70 0.15 0.12 -0.02 0.10 0.27 -0.17 -0.08 0.16 0.08 0.11 -0.11
desires 0.80 -0.06 0.06 -0.02 0.10 -0.01 0.15 0.15 -0.07 -0.18 0.07 0.00
embarrassed 0.61 0.44 -0.31 0.22 0.01 -0.08 0.10 0.02 0.12 0.04 -0.06 -0.02
emo_recog 0.50 0.54 0.07 0.20 0.13 -0.01 -0.18 -0.06 -0.11 -0.15 0.02 0.12
joy 0.84 0.13 -0.05 -0.28 0.09 -0.17 -0.08 -0.02 -0.05 0.06 -0.07 -0.09
morality 0.31 0.59 0.11 0.26 0.14 0.07 -0.27 -0.09 -0.13 -0.12 -0.01 0.01
personality 0.58 0.43 0.11 -0.11 0.07 0.00 -0.08 -0.14 -0.07 -0.01 -0.05 -0.02
pleasure 0.84 -0.11 0.02 -0.23 0.10 -0.05 0.00 0.00 0.13 -0.22 -0.03 -0.02
pride 0.69 0.39 -0.25 0.24 0.12 -0.07 0.11 0.03 0.00 0.06 0.12 0.00
MR13 h2 u2 com
happy -0.10 0.82 0.179 1.3
depressed 0.01 0.93 0.072 2.0
fear 0.12 0.80 0.203 1.5
angry 0.11 0.68 0.320 1.3
calm 0.01 0.66 0.339 1.5
sounds -0.02 0.59 0.414 1.6
seeing -0.07 0.63 0.367 2.1
temperature -0.08 0.59 0.412 2.3
odors 0.05 0.69 0.307 4.1
depth 0.06 0.41 0.585 2.4
computations 0.01 0.83 0.175 2.0
thoughts 0.00 0.71 0.295 1.5
reasoning -0.08 0.56 0.437 3.0
remembering -0.07 0.63 0.369 2.3
beliefs 0.00 0.58 0.419 3.4
hungry -0.06 0.92 0.081 2.2
tired 0.10 0.79 0.211 1.6
pain -0.03 0.84 0.157 1.9
nauseated 0.02 0.57 0.431 1.1
safe 0.08 0.71 0.291 1.5
love -0.12 0.71 0.287 1.6
recognizing 0.01 0.61 0.391 1.9
communicating 0.09 0.62 0.378 2.4
guilt 0.13 0.84 0.157 3.1
disrespected -0.07 0.70 0.299 2.7
free_will -0.06 0.65 0.348 1.9
choices -0.06 0.56 0.442 2.3
self_restraint 0.07 0.45 0.554 3.3
intentions 0.06 0.68 0.316 2.6
goal 0.08 0.57 0.425 2.4
conscious 0.04 0.76 0.245 1.9
self_aware 0.01 0.70 0.304 2.0
desires -0.07 0.74 0.256 1.4
embarrassed 0.00 0.74 0.257 3.0
emo_recog -0.02 0.69 0.312 3.1
joy -0.05 0.87 0.134 1.5
morality -0.05 0.65 0.345 3.1
personality -0.03 0.59 0.414 2.3
pleasure 0.06 0.85 0.150 1.4
pride -0.04 0.80 0.201 2.5
MR1 MR2 MR3 MR4 MR5 MR6 MR7 MR11 MR9 MR8 MR10 MR12 MR13
SS loadings 14.61 4.99 4.33 0.77 0.53 0.52 0.47 0.30 0.27 0.26 0.26 0.23 0.17
Proportion Var 0.37 0.12 0.11 0.02 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.00
Cumulative Var 0.37 0.49 0.60 0.62 0.63 0.64 0.66 0.66 0.67 0.68 0.68 0.69 0.69
Proportion Explained 0.53 0.18 0.16 0.03 0.02 0.02 0.02 0.01 0.01 0.01 0.01 0.01 0.01
Cumulative Proportion 0.53 0.71 0.86 0.89 0.91 0.93 0.95 0.96 0.97 0.98 0.99 0.99 1.00
Mean item complexity = 2.2
Test of the hypothesis that 13 factors are sufficient.
The degrees of freedom for the null model are 780 and the objective function was 33.07 with Chi Square of 12924.08
The degrees of freedom for the model are 338 and the objective function was 0.92
The root mean square of the residuals (RMSR) is 0.01
The df corrected root mean square of the residuals is 0.02
The harmonic number of observations is 406 with the empirical chi square 77.28 with prob < 1
The total number of observations was 406 with MLE Chi Square = 351.09 with prob < 0.3
Tucker Lewis Index of factoring reliability = 0.997
RMSEA index = 0.016 and the 90 % confidence intervals are NA 0.021
BIC = -1679.06
Fit based upon off diagonal values = 1
Measures of factor score adequacy
MR1 MR2 MR3 MR4 MR5 MR6 MR7 MR11
Correlation of scores with factors 0.99 0.98 0.96 0.89 0.86 0.82 0.77 0.68
Multiple R square of scores with factors 0.99 0.96 0.93 0.78 0.74 0.67 0.60 0.47
Minimum correlation of possible factor scores 0.97 0.92 0.86 0.57 0.48 0.33 0.20 -0.06
MR9 MR8 MR10 MR12 MR13
Correlation of scores with factors 0.71 0.72 0.70 0.65 0.64
Multiple R square of scores with factors 0.50 0.52 0.49 0.42 0.41
Minimum correlation of possible factor scores 0.00 0.03 -0.02 -0.15 -0.18
Factor Analysis using method = minres
Call: fa(r = d2_all, nfactors = 13, rotate = "none", fm = "minres",
cor = chosenCorType)
Standardized loadings (pattern matrix) based upon correlation matrix
MR1 MR2 MR3 MR4 MR5 MR6 MR7 MR11 MR9 MR8 MR10 MR12
happy 0.84 0.15 -0.09 -0.22 0.04 -0.07 -0.02 0.04 -0.03 0.10 -0.01 0.06
depressed 0.79 0.31 -0.27 -0.09 -0.32 0.11 -0.01 0.00 -0.05 -0.01 -0.01 0.01
fear 0.80 -0.32 0.09 0.00 -0.03 -0.02 -0.06 -0.01 -0.03 0.05 0.15 0.09
angry 0.78 -0.01 -0.04 -0.07 0.02 -0.14 0.02 -0.01 -0.09 0.01 0.15 -0.06
calm 0.73 0.01 0.16 -0.21 0.17 -0.04 -0.01 0.05 0.09 0.06 -0.06 0.11
sounds 0.12 0.17 0.68 -0.07 -0.10 -0.09 0.13 -0.01 0.03 0.12 0.12 0.01
seeing 0.37 -0.05 0.65 0.14 -0.07 -0.06 0.00 -0.14 -0.05 0.06 -0.10 0.08
temperature 0.25 0.00 0.61 0.09 -0.24 -0.15 -0.09 0.15 0.13 0.00 0.02 -0.05
odors 0.44 -0.13 0.52 0.20 -0.25 -0.11 -0.23 0.17 0.09 0.01 -0.03 -0.09
depth 0.16 0.23 0.51 0.10 -0.10 -0.11 -0.09 0.14 0.00 -0.07 0.08 -0.04
computations -0.39 0.75 0.28 -0.09 -0.05 -0.05 0.08 0.02 0.06 -0.03 0.09 0.00
thoughts 0.75 0.10 0.11 -0.04 0.17 0.27 0.01 0.10 0.04 -0.02 -0.04 -0.04
reasoning 0.24 0.55 0.34 0.11 0.09 0.16 -0.11 0.10 -0.02 -0.10 -0.02 0.06
remembering 0.06 0.48 0.58 -0.07 0.01 0.01 0.10 -0.11 0.10 0.06 -0.06 0.06
beliefs 0.49 0.43 -0.07 0.18 -0.02 0.08 0.17 0.14 0.00 0.02 -0.12 0.20
hungry 0.69 -0.64 0.03 0.16 -0.06 -0.05 0.00 -0.02 0.02 0.01 -0.06 0.01
tired 0.77 -0.39 0.11 -0.01 0.01 -0.03 0.07 -0.04 -0.07 -0.03 0.05 0.03
pain 0.74 -0.52 0.07 0.08 -0.03 -0.02 0.02 -0.05 0.01 -0.07 0.07 0.02
nauseated 0.73 -0.08 -0.03 -0.02 -0.01 -0.08 0.03 -0.01 0.00 -0.07 0.06 0.11
safe 0.76 -0.17 0.11 -0.04 0.16 -0.04 -0.07 0.10 -0.06 0.16 -0.05 0.09
love 0.75 0.27 -0.20 -0.01 -0.02 0.02 0.12 -0.01 0.11 -0.05 0.02 -0.02
recognizing 0.07 0.63 0.44 -0.04 0.00 -0.07 0.01 -0.03 0.03 0.04 0.06 0.07
communicating 0.25 0.28 0.62 0.02 -0.15 -0.03 0.15 -0.19 0.00 -0.03 -0.01 0.01
guilt 0.64 0.47 -0.32 0.22 0.04 -0.12 0.02 -0.06 0.10 0.02 -0.10 -0.03
disrespected 0.63 0.36 -0.24 0.20 0.06 -0.08 -0.05 0.01 -0.05 0.09 0.19 -0.10
free_will 0.68 -0.27 0.14 0.05 -0.01 0.18 0.11 -0.13 0.03 0.02 0.05 -0.13
choices 0.37 0.22 0.59 -0.01 0.04 0.08 0.07 -0.08 -0.07 -0.06 -0.02 -0.01
self_restraint 0.42 0.40 0.14 0.17 0.15 0.13 -0.06 0.02 -0.01 -0.04 -0.08 -0.05
intentions 0.63 -0.06 0.31 0.10 0.12 0.16 0.23 0.08 -0.19 0.03 -0.07 -0.15
goal 0.30 0.23 0.59 0.00 -0.04 -0.02 0.05 0.08 -0.15 0.03 -0.16 -0.11
conscious 0.74 -0.25 0.15 -0.04 0.11 0.27 -0.04 0.02 0.11 0.13 0.02 0.05
self_aware 0.70 0.15 0.12 -0.02 0.10 0.27 -0.17 -0.08 0.16 0.08 0.11 -0.11
desires 0.80 -0.06 0.06 -0.02 0.10 -0.01 0.15 0.15 -0.07 -0.18 0.07 0.00
embarrassed 0.61 0.44 -0.31 0.22 0.01 -0.08 0.10 0.02 0.12 0.04 -0.06 -0.02
emo_recog 0.50 0.54 0.07 0.20 0.13 -0.01 -0.18 -0.06 -0.11 -0.15 0.02 0.12
joy 0.84 0.13 -0.05 -0.28 0.09 -0.17 -0.08 -0.02 -0.05 0.06 -0.07 -0.09
morality 0.31 0.59 0.11 0.26 0.14 0.07 -0.27 -0.09 -0.13 -0.12 -0.01 0.01
personality 0.58 0.43 0.11 -0.11 0.07 0.00 -0.08 -0.14 -0.07 -0.01 -0.05 -0.02
pleasure 0.84 -0.11 0.02 -0.23 0.10 -0.05 0.00 0.00 0.13 -0.22 -0.03 -0.02
pride 0.69 0.39 -0.25 0.24 0.12 -0.07 0.11 0.03 0.00 0.06 0.12 0.00
MR13 h2 u2 com
happy -0.10 0.82 0.179 1.3
depressed 0.01 0.93 0.072 2.0
fear 0.12 0.80 0.203 1.5
angry 0.11 0.68 0.320 1.3
calm 0.01 0.66 0.339 1.5
sounds -0.02 0.59 0.414 1.6
seeing -0.07 0.63 0.367 2.1
temperature -0.08 0.59 0.412 2.3
odors 0.05 0.69 0.307 4.1
depth 0.06 0.41 0.585 2.4
computations 0.01 0.83 0.175 2.0
thoughts 0.00 0.71 0.295 1.5
reasoning -0.08 0.56 0.437 3.0
remembering -0.07 0.63 0.369 2.3
beliefs 0.00 0.58 0.419 3.4
hungry -0.06 0.92 0.081 2.2
tired 0.10 0.79 0.211 1.6
pain -0.03 0.84 0.157 1.9
nauseated 0.02 0.57 0.431 1.1
safe 0.08 0.71 0.291 1.5
love -0.12 0.71 0.287 1.6
recognizing 0.01 0.61 0.391 1.9
communicating 0.09 0.62 0.378 2.4
guilt 0.13 0.84 0.157 3.1
disrespected -0.07 0.70 0.299 2.7
free_will -0.06 0.65 0.348 1.9
choices -0.06 0.56 0.442 2.3
self_restraint 0.07 0.45 0.554 3.3
intentions 0.06 0.68 0.316 2.6
goal 0.08 0.57 0.425 2.4
conscious 0.04 0.76 0.245 1.9
self_aware 0.01 0.70 0.304 2.0
desires -0.07 0.74 0.256 1.4
embarrassed 0.00 0.74 0.257 3.0
emo_recog -0.02 0.69 0.312 3.1
joy -0.05 0.87 0.134 1.5
morality -0.05 0.65 0.345 3.1
personality -0.03 0.59 0.414 2.3
pleasure 0.06 0.85 0.150 1.4
pride -0.04 0.80 0.201 2.5
MR1 MR2 MR3 MR4 MR5 MR6 MR7 MR11 MR9 MR8 MR10 MR12 MR13
SS loadings 14.61 4.99 4.33 0.77 0.53 0.52 0.47 0.30 0.27 0.26 0.26 0.23 0.17
Proportion Var 0.37 0.12 0.11 0.02 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.00
Cumulative Var 0.37 0.49 0.60 0.62 0.63 0.64 0.66 0.66 0.67 0.68 0.68 0.69 0.69
Proportion Explained 0.53 0.18 0.16 0.03 0.02 0.02 0.02 0.01 0.01 0.01 0.01 0.01 0.01
Cumulative Proportion 0.53 0.71 0.86 0.89 0.91 0.93 0.95 0.96 0.97 0.98 0.99 0.99 1.00
Mean item complexity = 2.2
Test of the hypothesis that 13 factors are sufficient.
The degrees of freedom for the null model are 780 and the objective function was 33.07 with Chi Square of 12924.08
The degrees of freedom for the model are 338 and the objective function was 0.92
The root mean square of the residuals (RMSR) is 0.01
The df corrected root mean square of the residuals is 0.02
The harmonic number of observations is 406 with the empirical chi square 77.28 with prob < 1
The total number of observations was 406 with MLE Chi Square = 351.09 with prob < 0.3
Tucker Lewis Index of factoring reliability = 0.997
RMSEA index = 0.016 and the 90 % confidence intervals are NA 0.021
BIC = -1679.06
Fit based upon off diagonal values = 1
Measures of factor score adequacy
MR1 MR2 MR3 MR4 MR5 MR6 MR7 MR11
Correlation of scores with factors 0.99 0.98 0.96 0.89 0.86 0.82 0.77 0.68
Multiple R square of scores with factors 0.99 0.96 0.93 0.78 0.74 0.67 0.60 0.47
Minimum correlation of possible factor scores 0.97 0.92 0.86 0.57 0.48 0.33 0.20 -0.06
MR9 MR8 MR10 MR12 MR13
Correlation of scores with factors 0.71 0.72 0.70 0.65 0.64
Multiple R square of scores with factors 0.50 0.52 0.49 0.42 0.41
Minimum correlation of possible factor scores 0.00 0.03 -0.02 -0.15 -0.18
[1] 3
[1] 3
Step 2: Run EFA with varimax rotation
Factor Analysis using method = minres
Call: fa(r = d2_all, nfactors = nfactors_d2_all, rotate = chosenRotType,
fm = "minres", cor = chosenCorType)
Standardized loadings (pattern matrix) based upon correlation matrix
MR1 MR2 MR3 h2 u2 com
happy 0.55 0.64 0.09 0.72 0.28 2.0
depressed 0.39 0.75 0.00 0.71 0.29 1.5
fear 0.83 0.23 0.09 0.75 0.25 1.2
angry 0.60 0.49 0.08 0.61 0.39 2.0
calm 0.57 0.41 0.25 0.55 0.45 2.2
sounds 0.07 -0.05 0.72 0.52 0.48 1.0
seeing 0.39 -0.03 0.63 0.56 0.44 1.7
temperature 0.26 -0.07 0.60 0.43 0.57 1.4
odors 0.47 -0.01 0.48 0.45 0.55 2.0
depth 0.04 0.08 0.58 0.34 0.66 1.0
computations -0.73 0.18 0.47 0.79 0.21 1.8
thoughts 0.53 0.50 0.23 0.58 0.42 2.4
reasoning -0.11 0.42 0.52 0.47 0.53 2.0
remembering -0.19 0.17 0.72 0.58 0.42 1.3
beliefs 0.11 0.64 0.15 0.44 0.56 1.2
hungry 0.92 -0.02 -0.10 0.86 0.14 1.0
tired 0.86 0.16 0.08 0.77 0.23 1.1
pain 0.90 0.07 -0.01 0.82 0.18 1.0
nauseated 0.61 0.40 0.06 0.54 0.46 1.7
safe 0.70 0.32 0.14 0.62 0.38 1.5
love 0.39 0.72 0.02 0.66 0.34 1.5
recognizing -0.29 0.33 0.63 0.59 0.41 2.0
communicating 0.09 0.12 0.72 0.54 0.46 1.1
guilt 0.17 0.84 -0.04 0.73 0.27 1.1
disrespected 0.24 0.74 -0.01 0.60 0.40 1.2
free_will 0.71 0.18 0.14 0.56 0.44 1.2
choices 0.21 0.17 0.67 0.53 0.47 1.3
self_restraint 0.09 0.51 0.31 0.37 0.63 1.7
intentions 0.56 0.25 0.34 0.50 0.50 2.1
goal 0.16 0.13 0.67 0.49 0.51 1.2
conscious 0.74 0.23 0.15 0.62 0.38 1.3
self_aware 0.46 0.49 0.25 0.52 0.48 2.5
desires 0.66 0.43 0.14 0.64 0.36 1.8
embarrassed 0.16 0.80 -0.05 0.67 0.33 1.1
emo_recog 0.07 0.67 0.31 0.55 0.45 1.4
joy 0.56 0.61 0.12 0.69 0.31 2.1
morality -0.11 0.57 0.33 0.45 0.55 1.7
personality 0.20 0.61 0.33 0.53 0.47 1.8
pleasure 0.71 0.43 0.10 0.70 0.30 1.7
pride 0.26 0.80 -0.01 0.71 0.29 1.2
MR1 MR2 MR3
SS loadings 9.82 8.40 5.55
Proportion Var 0.25 0.21 0.14
Cumulative Var 0.25 0.46 0.59
Proportion Explained 0.41 0.35 0.23
Cumulative Proportion 0.41 0.77 1.00
Mean item complexity = 1.6
Test of the hypothesis that 3 factors are sufficient.
The degrees of freedom for the null model are 780 and the objective function was 33.07 with Chi Square of 12924.08
The degrees of freedom for the model are 663 and the objective function was 3.93
The root mean square of the residuals (RMSR) is 0.03
The df corrected root mean square of the residuals is 0.03
The harmonic number of observations is 406 with the empirical chi square 607.3 with prob < 0.94
The total number of observations was 406 with MLE Chi Square = 1526.24 with prob < 6.5e-70
Tucker Lewis Index of factoring reliability = 0.916
RMSEA index = 0.059 and the 90 % confidence intervals are 0.053 0.06
BIC = -2455.97
Fit based upon off diagonal values = 0.99
Measures of factor score adequacy
MR1 MR2 MR3
Correlation of scores with factors 0.98 0.97 0.96
Multiple R square of scores with factors 0.96 0.94 0.92
Minimum correlation of possible factor scores 0.93 0.89 0.83
back to TOC
Study 3
Design: 2 conditions (beetle, robot), within-subjects Date conducted: 2016-01-10
Exploratory factor analysis
Step 1: Run maximal EFA (without and with rotation)
Parallel analysis suggests that the number of factors = 3 and the number of components = 3

Factor Analysis using method = minres
Call: fa(r = d3_all, nfactors = 13, rotate = "none", fm = "minres",
cor = chosenCorType)
Standardized loadings (pattern matrix) based upon correlation matrix
MR1 MR2 MR3 MR4 MR5 MR7 MR6 MR9 MR8 MR10 MR12 MR11
happy 0.63 0.62 -0.13 -0.05 -0.20 0.01 -0.24 -0.07 -0.07 0.00 0.02 -0.01
depressed 0.50 0.60 -0.24 0.16 -0.10 0.00 0.12 0.08 -0.01 0.05 -0.04 0.05
fear 0.80 0.27 -0.02 -0.19 -0.04 -0.03 0.03 0.00 0.02 0.04 0.03 0.06
angry 0.62 0.53 -0.14 -0.12 -0.09 -0.01 0.06 -0.02 0.03 0.02 0.01 -0.07
calm 0.66 0.47 0.05 -0.14 -0.05 -0.07 -0.06 0.04 0.04 0.12 -0.05 0.12
sounds 0.18 0.24 0.61 0.00 -0.22 0.25 -0.04 0.07 -0.06 -0.08 -0.17 -0.04
seeing 0.35 0.15 0.54 0.00 -0.10 0.18 -0.05 0.07 0.01 0.02 -0.05 -0.01
temperature 0.38 0.15 0.59 0.00 -0.19 0.13 0.14 -0.08 -0.01 -0.14 0.09 0.07
odors 0.54 0.12 0.41 0.03 -0.07 0.29 0.04 -0.05 0.06 -0.01 0.12 0.04
depth 0.23 0.30 0.50 0.08 -0.08 0.04 0.21 0.00 -0.01 -0.06 -0.08 0.10
computations -0.75 0.31 0.15 0.17 -0.03 -0.22 0.03 -0.01 0.02 -0.21 0.04 0.08
thoughts 0.58 0.57 0.10 -0.14 0.12 -0.04 -0.13 0.10 0.12 -0.03 -0.10 -0.03
reasoning -0.02 0.61 0.35 0.17 0.08 -0.20 -0.07 0.11 0.05 0.02 -0.05 0.01
remembering -0.10 0.47 0.49 0.10 -0.07 -0.12 0.11 -0.04 -0.05 0.06 -0.02 -0.20
beliefs 0.25 0.59 -0.13 0.19 0.19 0.08 0.10 -0.25 -0.10 -0.07 -0.08 0.01
hungry 0.99 -0.15 0.01 0.03 0.00 -0.01 0.00 0.00 0.00 0.00 0.00 0.00
tired 0.85 0.17 -0.04 -0.12 -0.03 0.01 0.09 0.00 -0.06 0.04 0.08 0.16
pain 0.89 0.01 0.00 -0.15 -0.02 0.10 0.05 0.04 0.00 0.01 0.03 0.00
nauseated 0.70 0.38 -0.12 -0.08 -0.12 -0.04 0.24 0.18 -0.06 0.01 -0.01 0.10
safe 0.72 0.29 0.04 -0.13 0.01 0.03 -0.05 0.07 0.02 0.08 0.04 0.00
love 0.56 0.61 -0.14 0.07 -0.01 -0.03 0.08 0.15 -0.21 -0.03 0.02 -0.15
recognizing -0.19 0.57 0.45 0.18 -0.11 -0.06 -0.08 0.14 0.09 0.09 -0.02 0.00
communicating -0.05 0.39 0.47 0.19 -0.03 -0.08 0.00 -0.02 -0.01 0.15 0.11 -0.04
guilt 0.36 0.64 -0.24 0.22 0.01 0.10 0.05 0.01 0.06 -0.04 -0.03 -0.04
disrespected 0.37 0.63 -0.23 0.21 0.04 0.14 0.18 -0.06 0.03 0.05 -0.13 -0.06
free_will 0.73 0.35 0.05 -0.23 0.25 0.05 -0.08 0.05 -0.18 -0.14 -0.02 0.02
choices 0.31 0.41 0.46 -0.05 0.13 -0.12 -0.05 -0.06 -0.01 0.06 0.02 0.04
self_restraint 0.29 0.58 0.02 0.03 0.14 -0.11 0.06 -0.07 -0.15 0.15 -0.11 0.05
intentions 0.57 0.37 0.22 -0.20 0.22 -0.10 0.08 -0.05 0.07 0.00 0.04 -0.13
goal 0.20 0.41 0.43 0.02 -0.04 -0.09 0.13 -0.13 -0.11 0.09 0.12 -0.11
conscious 0.73 0.36 0.05 -0.19 0.15 0.03 -0.02 0.01 0.09 -0.02 -0.05 0.01
self_aware 0.54 0.48 0.06 -0.15 0.18 0.04 -0.06 0.04 0.15 0.02 -0.06 0.09
desires 0.75 0.39 0.02 -0.28 0.06 -0.01 0.15 -0.10 0.08 -0.04 0.06 -0.06
embarrassed 0.35 0.60 -0.28 0.25 0.03 0.10 0.00 0.07 0.21 -0.15 0.06 -0.04
emo_recog 0.24 0.66 0.07 0.21 0.26 0.09 -0.13 0.02 -0.01 0.09 0.16 -0.01
joy 0.62 0.61 -0.15 -0.02 -0.20 -0.07 -0.02 -0.06 0.06 -0.07 -0.03 0.02
morality 0.05 0.58 0.14 0.35 0.26 0.04 -0.06 -0.19 -0.07 0.05 -0.08 0.15
personality 0.33 0.67 0.09 0.05 0.10 0.01 -0.07 0.11 0.07 0.01 0.12 -0.05
pleasure 0.77 0.40 -0.07 -0.12 -0.08 -0.06 0.09 -0.11 0.05 0.05 -0.06 -0.02
pride 0.40 0.65 -0.24 0.18 0.07 0.06 0.04 0.03 -0.01 0.06 0.12 0.08
MR13 h2 u2 com
happy 0.00 0.91 0.088 2.6
depressed -0.01 0.74 0.262 2.7
fear 0.02 0.76 0.236 1.4
angry 0.06 0.72 0.275 2.3
calm 0.04 0.72 0.282 2.2
sounds 0.03 0.63 0.371 2.6
seeing 0.02 0.49 0.514 2.4
temperature 0.03 0.63 0.375 2.7
odors -0.04 0.59 0.410 2.9
depth -0.10 0.48 0.521 3.0
computations 0.02 0.82 0.176 2.0
thoughts 0.00 0.76 0.239 2.6
reasoning -0.06 0.59 0.405 2.3
remembering 0.06 0.57 0.435 2.9
beliefs 0.00 0.59 0.408 2.7
hungry 0.00 1.00 0.005 1.0
tired 0.03 0.81 0.187 1.3
pain -0.04 0.83 0.167 1.1
nauseated -0.05 0.78 0.222 2.2
safe 0.07 0.65 0.351 1.5
love -0.07 0.81 0.190 2.7
recognizing 0.01 0.65 0.352 2.9
communicating 0.04 0.45 0.548 2.8
guilt 0.01 0.66 0.335 2.3
disrespected 0.09 0.72 0.277 2.8
free_will 0.07 0.84 0.159 2.3
choices 0.09 0.53 0.468 3.4
self_restraint 0.02 0.53 0.474 2.2
intentions 0.03 0.64 0.357 3.2
goal 0.05 0.48 0.517 3.7
conscious -0.16 0.76 0.239 1.9
self_aware 0.10 0.64 0.362 2.8
desires -0.05 0.84 0.156 2.1
embarrassed 0.08 0.73 0.274 3.3
emo_recog -0.15 0.69 0.310 2.4
joy -0.08 0.84 0.162 2.5
morality -0.11 0.63 0.366 3.0
personality -0.01 0.61 0.386 1.8
pleasure 0.02 0.81 0.194 1.8
pride 0.12 0.72 0.278 2.5
MR1 MR2 MR3 MR4 MR5 MR7 MR6 MR9 MR8 MR10 MR12 MR11 MR13
SS loadings 11.73 8.81 3.15 0.97 0.67 0.46 0.41 0.31 0.28 0.25 0.24 0.24 0.17
Proportion Var 0.29 0.22 0.08 0.02 0.02 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.00
Cumulative Var 0.29 0.51 0.59 0.62 0.63 0.64 0.65 0.66 0.67 0.68 0.68 0.69 0.69
Proportion Explained 0.42 0.32 0.11 0.04 0.02 0.02 0.01 0.01 0.01 0.01 0.01 0.01 0.01
Cumulative Proportion 0.42 0.74 0.86 0.89 0.92 0.93 0.95 0.96 0.97 0.98 0.99 0.99 1.00
Mean item complexity = 2.4
Test of the hypothesis that 13 factors are sufficient.
The degrees of freedom for the null model are 780 and the objective function was 34.22 with Chi Square of 13170.85
The degrees of freedom for the model are 338 and the objective function was 0.95
The root mean square of the residuals (RMSR) is 0.01
The df corrected root mean square of the residuals is 0.02
The harmonic number of observations is 400 with the empirical chi square 79.31 with prob < 1
The total number of observations was 400 with MLE Chi Square = 358.44 with prob < 0.21
Tucker Lewis Index of factoring reliability = 0.996
RMSEA index = 0.018 and the 90 % confidence intervals are NA 0.023
BIC = -1666.68
Fit based upon off diagonal values = 1
Measures of factor score adequacy
MR1 MR2 MR3 MR4 MR5 MR7 MR6 MR9
Correlation of scores with factors 1.00 0.99 0.94 0.89 0.85 0.77 0.81 0.72
Multiple R square of scores with factors 1.00 0.97 0.89 0.80 0.73 0.59 0.65 0.52
Minimum correlation of possible factor scores 0.99 0.95 0.78 0.59 0.45 0.18 0.31 0.05
MR8 MR10 MR12 MR11 MR13
Correlation of scores with factors 0.73 0.69 0.65 0.68 0.61
Multiple R square of scores with factors 0.53 0.48 0.42 0.46 0.37
Minimum correlation of possible factor scores 0.06 -0.04 -0.16 -0.09 -0.25
Factor Analysis using method = minres
Call: fa(r = d3_all, nfactors = 13, rotate = "none", fm = "minres",
cor = chosenCorType)
Standardized loadings (pattern matrix) based upon correlation matrix
MR1 MR2 MR3 MR4 MR5 MR7 MR6 MR9 MR8 MR10 MR12 MR11
happy 0.63 0.62 -0.13 -0.05 -0.20 0.01 -0.24 -0.07 -0.07 0.00 0.02 -0.01
depressed 0.50 0.60 -0.24 0.16 -0.10 0.00 0.12 0.08 -0.01 0.05 -0.04 0.05
fear 0.80 0.27 -0.02 -0.19 -0.04 -0.03 0.03 0.00 0.02 0.04 0.03 0.06
angry 0.62 0.53 -0.14 -0.12 -0.09 -0.01 0.06 -0.02 0.03 0.02 0.01 -0.07
calm 0.66 0.47 0.05 -0.14 -0.05 -0.07 -0.06 0.04 0.04 0.12 -0.05 0.12
sounds 0.18 0.24 0.61 0.00 -0.22 0.25 -0.04 0.07 -0.06 -0.08 -0.17 -0.04
seeing 0.35 0.15 0.54 0.00 -0.10 0.18 -0.05 0.07 0.01 0.02 -0.05 -0.01
temperature 0.38 0.15 0.59 0.00 -0.19 0.13 0.14 -0.08 -0.01 -0.14 0.09 0.07
odors 0.54 0.12 0.41 0.03 -0.07 0.29 0.04 -0.05 0.06 -0.01 0.12 0.04
depth 0.23 0.30 0.50 0.08 -0.08 0.04 0.21 0.00 -0.01 -0.06 -0.08 0.10
computations -0.75 0.31 0.15 0.17 -0.03 -0.22 0.03 -0.01 0.02 -0.21 0.04 0.08
thoughts 0.58 0.57 0.10 -0.14 0.12 -0.04 -0.13 0.10 0.12 -0.03 -0.10 -0.03
reasoning -0.02 0.61 0.35 0.17 0.08 -0.20 -0.07 0.11 0.05 0.02 -0.05 0.01
remembering -0.10 0.47 0.49 0.10 -0.07 -0.12 0.11 -0.04 -0.05 0.06 -0.02 -0.20
beliefs 0.25 0.59 -0.13 0.19 0.19 0.08 0.10 -0.25 -0.10 -0.07 -0.08 0.01
hungry 0.99 -0.15 0.01 0.03 0.00 -0.01 0.00 0.00 0.00 0.00 0.00 0.00
tired 0.85 0.17 -0.04 -0.12 -0.03 0.01 0.09 0.00 -0.06 0.04 0.08 0.16
pain 0.89 0.01 0.00 -0.15 -0.02 0.10 0.05 0.04 0.00 0.01 0.03 0.00
nauseated 0.70 0.38 -0.12 -0.08 -0.12 -0.04 0.24 0.18 -0.06 0.01 -0.01 0.10
safe 0.72 0.29 0.04 -0.13 0.01 0.03 -0.05 0.07 0.02 0.08 0.04 0.00
love 0.56 0.61 -0.14 0.07 -0.01 -0.03 0.08 0.15 -0.21 -0.03 0.02 -0.15
recognizing -0.19 0.57 0.45 0.18 -0.11 -0.06 -0.08 0.14 0.09 0.09 -0.02 0.00
communicating -0.05 0.39 0.47 0.19 -0.03 -0.08 0.00 -0.02 -0.01 0.15 0.11 -0.04
guilt 0.36 0.64 -0.24 0.22 0.01 0.10 0.05 0.01 0.06 -0.04 -0.03 -0.04
disrespected 0.37 0.63 -0.23 0.21 0.04 0.14 0.18 -0.06 0.03 0.05 -0.13 -0.06
free_will 0.73 0.35 0.05 -0.23 0.25 0.05 -0.08 0.05 -0.18 -0.14 -0.02 0.02
choices 0.31 0.41 0.46 -0.05 0.13 -0.12 -0.05 -0.06 -0.01 0.06 0.02 0.04
self_restraint 0.29 0.58 0.02 0.03 0.14 -0.11 0.06 -0.07 -0.15 0.15 -0.11 0.05
intentions 0.57 0.37 0.22 -0.20 0.22 -0.10 0.08 -0.05 0.07 0.00 0.04 -0.13
goal 0.20 0.41 0.43 0.02 -0.04 -0.09 0.13 -0.13 -0.11 0.09 0.12 -0.11
conscious 0.73 0.36 0.05 -0.19 0.15 0.03 -0.02 0.01 0.09 -0.02 -0.05 0.01
self_aware 0.54 0.48 0.06 -0.15 0.18 0.04 -0.06 0.04 0.15 0.02 -0.06 0.09
desires 0.75 0.39 0.02 -0.28 0.06 -0.01 0.15 -0.10 0.08 -0.04 0.06 -0.06
embarrassed 0.35 0.60 -0.28 0.25 0.03 0.10 0.00 0.07 0.21 -0.15 0.06 -0.04
emo_recog 0.24 0.66 0.07 0.21 0.26 0.09 -0.13 0.02 -0.01 0.09 0.16 -0.01
joy 0.62 0.61 -0.15 -0.02 -0.20 -0.07 -0.02 -0.06 0.06 -0.07 -0.03 0.02
morality 0.05 0.58 0.14 0.35 0.26 0.04 -0.06 -0.19 -0.07 0.05 -0.08 0.15
personality 0.33 0.67 0.09 0.05 0.10 0.01 -0.07 0.11 0.07 0.01 0.12 -0.05
pleasure 0.77 0.40 -0.07 -0.12 -0.08 -0.06 0.09 -0.11 0.05 0.05 -0.06 -0.02
pride 0.40 0.65 -0.24 0.18 0.07 0.06 0.04 0.03 -0.01 0.06 0.12 0.08
MR13 h2 u2 com
happy 0.00 0.91 0.088 2.6
depressed -0.01 0.74 0.262 2.7
fear 0.02 0.76 0.236 1.4
angry 0.06 0.72 0.275 2.3
calm 0.04 0.72 0.282 2.2
sounds 0.03 0.63 0.371 2.6
seeing 0.02 0.49 0.514 2.4
temperature 0.03 0.63 0.375 2.7
odors -0.04 0.59 0.410 2.9
depth -0.10 0.48 0.521 3.0
computations 0.02 0.82 0.176 2.0
thoughts 0.00 0.76 0.239 2.6
reasoning -0.06 0.59 0.405 2.3
remembering 0.06 0.57 0.435 2.9
beliefs 0.00 0.59 0.408 2.7
hungry 0.00 1.00 0.005 1.0
tired 0.03 0.81 0.187 1.3
pain -0.04 0.83 0.167 1.1
nauseated -0.05 0.78 0.222 2.2
safe 0.07 0.65 0.351 1.5
love -0.07 0.81 0.190 2.7
recognizing 0.01 0.65 0.352 2.9
communicating 0.04 0.45 0.548 2.8
guilt 0.01 0.66 0.335 2.3
disrespected 0.09 0.72 0.277 2.8
free_will 0.07 0.84 0.159 2.3
choices 0.09 0.53 0.468 3.4
self_restraint 0.02 0.53 0.474 2.2
intentions 0.03 0.64 0.357 3.2
goal 0.05 0.48 0.517 3.7
conscious -0.16 0.76 0.239 1.9
self_aware 0.10 0.64 0.362 2.8
desires -0.05 0.84 0.156 2.1
embarrassed 0.08 0.73 0.274 3.3
emo_recog -0.15 0.69 0.310 2.4
joy -0.08 0.84 0.162 2.5
morality -0.11 0.63 0.366 3.0
personality -0.01 0.61 0.386 1.8
pleasure 0.02 0.81 0.194 1.8
pride 0.12 0.72 0.278 2.5
MR1 MR2 MR3 MR4 MR5 MR7 MR6 MR9 MR8 MR10 MR12 MR11 MR13
SS loadings 11.73 8.81 3.15 0.97 0.67 0.46 0.41 0.31 0.28 0.25 0.24 0.24 0.17
Proportion Var 0.29 0.22 0.08 0.02 0.02 0.01 0.01 0.01 0.01 0.01 0.01 0.01 0.00
Cumulative Var 0.29 0.51 0.59 0.62 0.63 0.64 0.65 0.66 0.67 0.68 0.68 0.69 0.69
Proportion Explained 0.42 0.32 0.11 0.04 0.02 0.02 0.01 0.01 0.01 0.01 0.01 0.01 0.01
Cumulative Proportion 0.42 0.74 0.86 0.89 0.92 0.93 0.95 0.96 0.97 0.98 0.99 0.99 1.00
Mean item complexity = 2.4
Test of the hypothesis that 13 factors are sufficient.
The degrees of freedom for the null model are 780 and the objective function was 34.22 with Chi Square of 13170.85
The degrees of freedom for the model are 338 and the objective function was 0.95
The root mean square of the residuals (RMSR) is 0.01
The df corrected root mean square of the residuals is 0.02
The harmonic number of observations is 400 with the empirical chi square 79.31 with prob < 1
The total number of observations was 400 with MLE Chi Square = 358.44 with prob < 0.21
Tucker Lewis Index of factoring reliability = 0.996
RMSEA index = 0.018 and the 90 % confidence intervals are NA 0.023
BIC = -1666.68
Fit based upon off diagonal values = 1
Measures of factor score adequacy
MR1 MR2 MR3 MR4 MR5 MR7 MR6 MR9
Correlation of scores with factors 1.00 0.99 0.94 0.89 0.85 0.77 0.81 0.72
Multiple R square of scores with factors 1.00 0.97 0.89 0.80 0.73 0.59 0.65 0.52
Minimum correlation of possible factor scores 0.99 0.95 0.78 0.59 0.45 0.18 0.31 0.05
MR8 MR10 MR12 MR11 MR13
Correlation of scores with factors 0.73 0.69 0.65 0.68 0.61
Multiple R square of scores with factors 0.53 0.48 0.42 0.46 0.37
Minimum correlation of possible factor scores 0.06 -0.04 -0.16 -0.09 -0.25
[1] 3
[1] 3
Step 2: Run EFA with varimax rotation
Factor Analysis using method = minres
Call: fa(r = d3_all, nfactors = nfactors_d3_all, rotate = chosenRotType,
fm = "minres", cor = chosenCorType)
Standardized loadings (pattern matrix) based upon correlation matrix
MR1 MR2 MR3 h2 u2 com
happy 0.52 0.68 0.17 0.77 0.23 2.0
depressed 0.35 0.75 0.06 0.69 0.31 1.4
fear 0.78 0.37 0.10 0.75 0.25 1.5
angry 0.54 0.62 0.11 0.69 0.31 2.0
calm 0.59 0.49 0.25 0.66 0.34 2.3
sounds 0.20 -0.03 0.64 0.45 0.55 1.2
seeing 0.37 -0.04 0.55 0.43 0.57 1.8
temperature 0.40 -0.06 0.58 0.50 0.50 1.8
odors 0.54 0.04 0.41 0.47 0.53 1.9
depth 0.20 0.11 0.58 0.38 0.62 1.3
computations -0.80 0.08 0.27 0.72 0.28 1.3
thoughts 0.50 0.55 0.33 0.67 0.33 2.6
reasoning -0.13 0.41 0.59 0.54 0.46 1.9
remembering -0.15 0.19 0.65 0.49 0.51 1.3
beliefs 0.10 0.64 0.15 0.44 0.56 1.2
hungry 0.93 0.10 -0.05 0.87 0.13 1.0
tired 0.82 0.31 0.04 0.78 0.22 1.3
pain 0.90 0.16 0.01 0.84 0.16 1.1
nauseated 0.64 0.50 0.06 0.66 0.34 1.9
safe 0.69 0.35 0.16 0.63 0.37 1.6
love 0.42 0.70 0.15 0.70 0.30 1.8
recognizing -0.27 0.29 0.66 0.59 0.41 1.7
communicating -0.11 0.16 0.60 0.40 0.60 1.2
guilt 0.19 0.76 0.07 0.63 0.37 1.1
disrespected 0.21 0.75 0.07 0.61 0.39 1.2
free_will 0.69 0.40 0.18 0.66 0.34 1.8
choices 0.27 0.21 0.59 0.47 0.53 1.7
self_restraint 0.19 0.56 0.27 0.43 0.57 1.7
intentions 0.54 0.33 0.34 0.52 0.48 2.4
goal 0.16 0.21 0.56 0.39 0.61 1.5
conscious 0.69 0.41 0.20 0.68 0.32 1.8
self_aware 0.49 0.48 0.26 0.54 0.46 2.5
desires 0.73 0.44 0.18 0.75 0.25 1.8
embarrassed 0.18 0.75 0.02 0.60 0.40 1.1
emo_recog 0.09 0.62 0.35 0.51 0.49 1.6
joy 0.50 0.70 0.14 0.76 0.24 1.9
morality -0.10 0.51 0.37 0.41 0.59 1.9
personality 0.21 0.62 0.37 0.57 0.43 1.9
pleasure 0.70 0.51 0.11 0.76 0.24 1.9
pride 0.24 0.77 0.08 0.66 0.34 1.2
MR1 MR2 MR3
SS loadings 9.87 9.20 4.98
Proportion Var 0.25 0.23 0.12
Cumulative Var 0.25 0.48 0.60
Proportion Explained 0.41 0.38 0.21
Cumulative Proportion 0.41 0.79 1.00
Mean item complexity = 1.7
Test of the hypothesis that 3 factors are sufficient.
The degrees of freedom for the null model are 780 and the objective function was 34.22 with Chi Square of 13170.85
The degrees of freedom for the model are 663 and the objective function was 3.58
The root mean square of the residuals (RMSR) is 0.03
The df corrected root mean square of the residuals is 0.03
The harmonic number of observations is 400 with the empirical chi square 526.02 with prob < 1
The total number of observations was 400 with MLE Chi Square = 1371.31 with prob < 1.4e-51
Tucker Lewis Index of factoring reliability = 0.932
RMSEA index = 0.054 and the 90 % confidence intervals are 0.048 0.056
BIC = -2601.03
Fit based upon off diagonal values = 1
Measures of factor score adequacy
MR1 MR2 MR3
Correlation of scores with factors 0.98 0.96 0.94
Multiple R square of scores with factors 0.96 0.93 0.88
Minimum correlation of possible factor scores 0.92 0.86 0.77
back to TOC
Study 4
Design: 21 conditions, between-subjects Date conducted: 2016-01-14
Demographics
Joining, by = c("condition", "min_age", "max_age", "median_age", "mean_age", "sd_age")
joining character vector and factor, coercing into character vector
back to TOC
Exploratory factor analysis
Step 1: Run maximal EFA (without and with rotation)
Parallel analysis suggests that the number of factors = 4 and the number of components = 3

Factor Analysis using method = minres
Call: fa(r = d4_all, nfactors = 13, rotate = "none", fm = "minres",
cor = chosenCorType)
Standardized loadings (pattern matrix) based upon correlation matrix
MR1 MR2 MR3 MR5 MR4 MR6 MR7 MR10 MR8 MR9 MR11 MR13
happy 0.90 -0.04 -0.19 -0.06 -0.21 -0.05 0.01 -0.01 -0.01 0.10 0.00 0.04
depressed 0.81 0.20 -0.08 -0.06 -0.07 0.23 -0.15 0.03 0.00 -0.12 -0.03 0.05
fear 0.86 -0.34 -0.11 0.05 0.12 0.00 -0.04 0.01 -0.06 0.03 -0.01 0.00
angry 0.87 -0.04 -0.09 -0.06 -0.09 0.09 -0.05 0.10 0.08 -0.05 -0.02 -0.11
calm 0.87 -0.18 -0.10 0.06 -0.02 -0.06 -0.04 -0.01 -0.08 0.08 0.05 0.09
sounds 0.69 -0.33 0.40 -0.22 0.12 -0.06 0.10 0.00 0.03 0.06 0.06 0.01
seeing 0.76 -0.33 0.28 -0.13 0.11 0.01 0.02 0.04 0.08 0.04 0.06 -0.08
temperature 0.63 -0.32 0.39 -0.14 0.16 0.00 0.03 -0.01 0.00 0.04 0.08 0.05
odors 0.79 -0.25 0.19 -0.07 0.14 0.11 0.05 -0.04 0.12 -0.09 0.06 -0.06
depth 0.67 -0.05 0.43 0.09 0.10 0.00 -0.05 0.11 0.12 0.03 0.08 0.17
computations 0.18 0.53 0.51 -0.13 -0.03 0.02 0.07 0.04 0.03 0.12 0.06 0.13
thoughts 0.85 0.01 -0.02 0.11 -0.06 -0.09 0.15 -0.12 0.04 -0.21 -0.08 0.04
reasoning 0.70 0.32 0.33 0.18 -0.05 0.01 0.09 -0.09 0.06 -0.05 -0.01 -0.02
remembering 0.72 0.02 0.47 -0.06 -0.10 0.06 -0.05 0.02 0.09 -0.03 -0.09 0.06
beliefs 0.66 0.55 -0.01 0.16 0.05 -0.05 0.18 -0.02 -0.03 -0.02 0.11 0.06
hungry 0.80 -0.41 -0.15 0.06 0.21 0.00 0.04 0.01 -0.01 0.03 -0.03 -0.02
tired 0.87 -0.34 -0.13 -0.04 0.06 0.05 -0.01 0.00 -0.04 -0.01 -0.01 0.01
pain 0.83 -0.39 -0.17 -0.03 0.19 0.07 0.08 -0.01 -0.04 -0.03 -0.04 0.01
nauseated 0.83 -0.09 -0.14 -0.04 -0.04 0.11 -0.10 -0.02 0.09 -0.01 0.06 0.07
safe 0.86 -0.19 -0.07 0.07 0.00 -0.16 -0.10 -0.02 -0.09 0.11 0.00 0.04
love 0.86 0.08 -0.18 -0.04 -0.20 -0.01 0.09 0.07 -0.03 0.00 0.02 -0.01
recognizing 0.78 -0.05 0.29 -0.28 -0.18 0.03 0.06 -0.01 0.01 0.02 -0.02 0.02
communicating 0.72 -0.11 0.47 -0.13 -0.12 -0.11 -0.06 0.00 -0.23 -0.10 -0.03 -0.06
guilt 0.74 0.51 -0.08 -0.05 0.05 0.08 0.01 -0.04 0.02 0.01 -0.01 -0.01
disrespected 0.73 0.45 -0.02 0.02 0.09 0.12 -0.01 0.06 -0.13 0.03 0.08 -0.11
free_will 0.81 -0.08 0.04 0.31 0.03 -0.06 0.02 0.14 0.06 0.01 -0.05 -0.04
choices 0.76 -0.06 0.39 0.15 0.02 -0.03 -0.08 -0.01 0.09 0.11 -0.15 -0.10
self_restraint 0.73 0.35 0.20 0.17 0.01 0.26 -0.08 -0.13 -0.11 0.09 -0.04 0.06
intentions 0.80 0.04 0.13 0.22 0.09 -0.13 -0.13 0.03 0.09 0.00 0.03 -0.01
goal 0.64 0.07 0.38 0.20 0.06 -0.10 -0.13 -0.16 -0.02 -0.11 -0.04 -0.01
conscious 0.82 -0.14 0.00 0.13 0.02 -0.08 0.07 -0.09 -0.04 -0.04 0.05 0.01
self_aware 0.75 0.19 0.11 0.26 0.02 -0.01 0.15 0.12 0.03 0.07 -0.13 0.04
desires 0.88 -0.08 -0.05 0.13 -0.05 -0.05 -0.13 -0.03 0.03 -0.10 0.19 -0.03
embarrassed 0.72 0.59 -0.14 -0.15 0.20 -0.09 -0.04 -0.01 0.02 -0.01 -0.03 0.00
emo_recog 0.76 0.35 0.08 -0.01 -0.06 0.09 0.04 0.12 -0.07 0.00 -0.01 -0.03
joy 0.90 -0.01 -0.16 -0.04 -0.25 -0.02 0.02 -0.10 0.07 0.07 -0.01 -0.06
morality 0.68 0.50 0.11 0.11 0.01 0.10 0.16 -0.04 -0.07 0.07 0.10 -0.09
personality 0.89 0.02 -0.04 -0.04 -0.20 -0.02 0.04 0.11 -0.02 -0.12 -0.02 0.06
pleasure 0.91 -0.19 -0.10 0.00 -0.05 0.01 -0.04 0.00 0.09 0.00 0.01 0.03
pride 0.81 0.33 -0.06 0.11 -0.06 -0.01 0.00 0.17 -0.05 0.00 0.04 -0.03
MR12 h2 u2 com
happy -0.07 0.91 0.085 1.3
depressed 0.14 0.83 0.167 1.6
fear 0.05 0.88 0.118 1.4
angry -0.06 0.82 0.178 1.2
calm 0.02 0.82 0.178 1.2
sounds 0.09 0.84 0.159 2.6
seeing -0.05 0.82 0.178 1.9
temperature 0.06 0.71 0.290 2.6
odors 0.06 0.79 0.209 1.6
depth -0.02 0.72 0.277 2.2
computations -0.04 0.64 0.363 2.7
thoughts 0.06 0.84 0.158 1.4
reasoning -0.11 0.76 0.235 2.3
remembering 0.03 0.78 0.219 1.9
beliefs 0.00 0.81 0.186 2.4
hungry -0.02 0.88 0.120 1.8
tired -0.10 0.92 0.084 1.4
pain 0.00 0.93 0.067 1.7
nauseated -0.01 0.76 0.239 1.2
safe 0.13 0.86 0.139 1.3
love -0.02 0.83 0.172 1.3
recognizing -0.03 0.81 0.190 1.7
communicating -0.04 0.87 0.125 2.3
guilt 0.03 0.83 0.167 1.9
disrespected 0.02 0.80 0.205 2.0
free_will 0.07 0.81 0.195 1.4
choices 0.02 0.82 0.181 1.9
self_restraint -0.04 0.84 0.156 2.3
intentions -0.01 0.76 0.242 1.4
goal -0.08 0.68 0.320 2.4
conscious 0.00 0.73 0.270 1.2
self_aware -0.08 0.75 0.248 1.7
desires -0.03 0.87 0.132 1.3
embarrassed -0.01 0.96 0.043 2.4
emo_recog 0.02 0.74 0.262 1.6
joy 0.05 0.93 0.069 1.3
morality 0.04 0.80 0.199 2.3
personality 0.03 0.87 0.126 1.2
pleasure -0.05 0.89 0.113 1.2
pride 0.00 0.81 0.192 1.5
MR1 MR2 MR3 MR5 MR4 MR6 MR7 MR10 MR8 MR9 MR11 MR13 MR12
SS loadings 24.34 3.28 2.17 0.72 0.52 0.32 0.28 0.22 0.22 0.22 0.17 0.15 0.13
Proportion Var 0.61 0.08 0.05 0.02 0.01 0.01 0.01 0.01 0.01 0.01 0.00 0.00 0.00
Cumulative Var 0.61 0.69 0.74 0.76 0.78 0.78 0.79 0.80 0.80 0.81 0.81 0.82 0.82
Proportion Explained 0.74 0.10 0.07 0.02 0.02 0.01 0.01 0.01 0.01 0.01 0.01 0.00 0.00
Cumulative Proportion 0.74 0.84 0.91 0.93 0.95 0.96 0.97 0.97 0.98 0.99 0.99 1.00 1.00
Mean item complexity = 1.7
Test of the hypothesis that 13 factors are sufficient.
The degrees of freedom for the null model are 780 and the objective function was 52.07 with Chi Square of 21651.8
The degrees of freedom for the model are 338 and the objective function was 1.2
The root mean square of the residuals (RMSR) is 0.01
The df corrected root mean square of the residuals is 0.01
The harmonic number of observations is 431 with the empirical chi square 39.58 with prob < 1
The total number of observations was 431 with MLE Chi Square = 486.84 with prob < 1.9e-07
Tucker Lewis Index of factoring reliability = 0.983
RMSEA index = 0.035 and the 90 % confidence intervals are 0.025 0.038
BIC = -1563.5
Fit based upon off diagonal values = 1
Measures of factor score adequacy
MR1 MR2 MR3 MR5 MR4 MR6 MR7 MR10
Correlation of scores with factors 1.00 0.98 0.96 0.90 0.91 0.82 0.79 0.74
Multiple R square of scores with factors 0.99 0.96 0.92 0.80 0.83 0.67 0.62 0.54
Minimum correlation of possible factor scores 0.99 0.93 0.84 0.61 0.66 0.35 0.23 0.09
MR8 MR9 MR11 MR13 MR12
Correlation of scores with factors 0.76 0.76 0.70 0.66 0.68
Multiple R square of scores with factors 0.58 0.58 0.49 0.44 0.46
Minimum correlation of possible factor scores 0.16 0.15 -0.01 -0.12 -0.08
Factor Analysis using method = minres
Call: fa(r = d4_all, nfactors = 13, rotate = "none", fm = "minres",
cor = chosenCorType)
Standardized loadings (pattern matrix) based upon correlation matrix
MR1 MR2 MR3 MR5 MR4 MR6 MR7 MR10 MR8 MR9 MR11 MR13
happy 0.90 -0.04 -0.19 -0.06 -0.21 -0.05 0.01 -0.01 -0.01 0.10 0.00 0.04
depressed 0.81 0.20 -0.08 -0.06 -0.07 0.23 -0.15 0.03 0.00 -0.12 -0.03 0.05
fear 0.86 -0.34 -0.11 0.05 0.12 0.00 -0.04 0.01 -0.06 0.03 -0.01 0.00
angry 0.87 -0.04 -0.09 -0.06 -0.09 0.09 -0.05 0.10 0.08 -0.05 -0.02 -0.11
calm 0.87 -0.18 -0.10 0.06 -0.02 -0.06 -0.04 -0.01 -0.08 0.08 0.05 0.09
sounds 0.69 -0.33 0.40 -0.22 0.12 -0.06 0.10 0.00 0.03 0.06 0.06 0.01
seeing 0.76 -0.33 0.28 -0.13 0.11 0.01 0.02 0.04 0.08 0.04 0.06 -0.08
temperature 0.63 -0.32 0.39 -0.14 0.16 0.00 0.03 -0.01 0.00 0.04 0.08 0.05
odors 0.79 -0.25 0.19 -0.07 0.14 0.11 0.05 -0.04 0.12 -0.09 0.06 -0.06
depth 0.67 -0.05 0.43 0.09 0.10 0.00 -0.05 0.11 0.12 0.03 0.08 0.17
computations 0.18 0.53 0.51 -0.13 -0.03 0.02 0.07 0.04 0.03 0.12 0.06 0.13
thoughts 0.85 0.01 -0.02 0.11 -0.06 -0.09 0.15 -0.12 0.04 -0.21 -0.08 0.04
reasoning 0.70 0.32 0.33 0.18 -0.05 0.01 0.09 -0.09 0.06 -0.05 -0.01 -0.02
remembering 0.72 0.02 0.47 -0.06 -0.10 0.06 -0.05 0.02 0.09 -0.03 -0.09 0.06
beliefs 0.66 0.55 -0.01 0.16 0.05 -0.05 0.18 -0.02 -0.03 -0.02 0.11 0.06
hungry 0.80 -0.41 -0.15 0.06 0.21 0.00 0.04 0.01 -0.01 0.03 -0.03 -0.02
tired 0.87 -0.34 -0.13 -0.04 0.06 0.05 -0.01 0.00 -0.04 -0.01 -0.01 0.01
pain 0.83 -0.39 -0.17 -0.03 0.19 0.07 0.08 -0.01 -0.04 -0.03 -0.04 0.01
nauseated 0.83 -0.09 -0.14 -0.04 -0.04 0.11 -0.10 -0.02 0.09 -0.01 0.06 0.07
safe 0.86 -0.19 -0.07 0.07 0.00 -0.16 -0.10 -0.02 -0.09 0.11 0.00 0.04
love 0.86 0.08 -0.18 -0.04 -0.20 -0.01 0.09 0.07 -0.03 0.00 0.02 -0.01
recognizing 0.78 -0.05 0.29 -0.28 -0.18 0.03 0.06 -0.01 0.01 0.02 -0.02 0.02
communicating 0.72 -0.11 0.47 -0.13 -0.12 -0.11 -0.06 0.00 -0.23 -0.10 -0.03 -0.06
guilt 0.74 0.51 -0.08 -0.05 0.05 0.08 0.01 -0.04 0.02 0.01 -0.01 -0.01
disrespected 0.73 0.45 -0.02 0.02 0.09 0.12 -0.01 0.06 -0.13 0.03 0.08 -0.11
free_will 0.81 -0.08 0.04 0.31 0.03 -0.06 0.02 0.14 0.06 0.01 -0.05 -0.04
choices 0.76 -0.06 0.39 0.15 0.02 -0.03 -0.08 -0.01 0.09 0.11 -0.15 -0.10
self_restraint 0.73 0.35 0.20 0.17 0.01 0.26 -0.08 -0.13 -0.11 0.09 -0.04 0.06
intentions 0.80 0.04 0.13 0.22 0.09 -0.13 -0.13 0.03 0.09 0.00 0.03 -0.01
goal 0.64 0.07 0.38 0.20 0.06 -0.10 -0.13 -0.16 -0.02 -0.11 -0.04 -0.01
conscious 0.82 -0.14 0.00 0.13 0.02 -0.08 0.07 -0.09 -0.04 -0.04 0.05 0.01
self_aware 0.75 0.19 0.11 0.26 0.02 -0.01 0.15 0.12 0.03 0.07 -0.13 0.04
desires 0.88 -0.08 -0.05 0.13 -0.05 -0.05 -0.13 -0.03 0.03 -0.10 0.19 -0.03
embarrassed 0.72 0.59 -0.14 -0.15 0.20 -0.09 -0.04 -0.01 0.02 -0.01 -0.03 0.00
emo_recog 0.76 0.35 0.08 -0.01 -0.06 0.09 0.04 0.12 -0.07 0.00 -0.01 -0.03
joy 0.90 -0.01 -0.16 -0.04 -0.25 -0.02 0.02 -0.10 0.07 0.07 -0.01 -0.06
morality 0.68 0.50 0.11 0.11 0.01 0.10 0.16 -0.04 -0.07 0.07 0.10 -0.09
personality 0.89 0.02 -0.04 -0.04 -0.20 -0.02 0.04 0.11 -0.02 -0.12 -0.02 0.06
pleasure 0.91 -0.19 -0.10 0.00 -0.05 0.01 -0.04 0.00 0.09 0.00 0.01 0.03
pride 0.81 0.33 -0.06 0.11 -0.06 -0.01 0.00 0.17 -0.05 0.00 0.04 -0.03
MR12 h2 u2 com
happy -0.07 0.91 0.085 1.3
depressed 0.14 0.83 0.167 1.6
fear 0.05 0.88 0.118 1.4
angry -0.06 0.82 0.178 1.2
calm 0.02 0.82 0.178 1.2
sounds 0.09 0.84 0.159 2.6
seeing -0.05 0.82 0.178 1.9
temperature 0.06 0.71 0.290 2.6
odors 0.06 0.79 0.209 1.6
depth -0.02 0.72 0.277 2.2
computations -0.04 0.64 0.363 2.7
thoughts 0.06 0.84 0.158 1.4
reasoning -0.11 0.76 0.235 2.3
remembering 0.03 0.78 0.219 1.9
beliefs 0.00 0.81 0.186 2.4
hungry -0.02 0.88 0.120 1.8
tired -0.10 0.92 0.084 1.4
pain 0.00 0.93 0.067 1.7
nauseated -0.01 0.76 0.239 1.2
safe 0.13 0.86 0.139 1.3
love -0.02 0.83 0.172 1.3
recognizing -0.03 0.81 0.190 1.7
communicating -0.04 0.87 0.125 2.3
guilt 0.03 0.83 0.167 1.9
disrespected 0.02 0.80 0.205 2.0
free_will 0.07 0.81 0.195 1.4
choices 0.02 0.82 0.181 1.9
self_restraint -0.04 0.84 0.156 2.3
intentions -0.01 0.76 0.242 1.4
goal -0.08 0.68 0.320 2.4
conscious 0.00 0.73 0.270 1.2
self_aware -0.08 0.75 0.248 1.7
desires -0.03 0.87 0.132 1.3
embarrassed -0.01 0.96 0.043 2.4
emo_recog 0.02 0.74 0.262 1.6
joy 0.05 0.93 0.069 1.3
morality 0.04 0.80 0.199 2.3
personality 0.03 0.87 0.126 1.2
pleasure -0.05 0.89 0.113 1.2
pride 0.00 0.81 0.192 1.5
MR1 MR2 MR3 MR5 MR4 MR6 MR7 MR10 MR8 MR9 MR11 MR13 MR12
SS loadings 24.34 3.28 2.17 0.72 0.52 0.32 0.28 0.22 0.22 0.22 0.17 0.15 0.13
Proportion Var 0.61 0.08 0.05 0.02 0.01 0.01 0.01 0.01 0.01 0.01 0.00 0.00 0.00
Cumulative Var 0.61 0.69 0.74 0.76 0.78 0.78 0.79 0.80 0.80 0.81 0.81 0.82 0.82
Proportion Explained 0.74 0.10 0.07 0.02 0.02 0.01 0.01 0.01 0.01 0.01 0.01 0.00 0.00
Cumulative Proportion 0.74 0.84 0.91 0.93 0.95 0.96 0.97 0.97 0.98 0.99 0.99 1.00 1.00
Mean item complexity = 1.7
Test of the hypothesis that 13 factors are sufficient.
The degrees of freedom for the null model are 780 and the objective function was 52.07 with Chi Square of 21651.8
The degrees of freedom for the model are 338 and the objective function was 1.2
The root mean square of the residuals (RMSR) is 0.01
The df corrected root mean square of the residuals is 0.01
The harmonic number of observations is 431 with the empirical chi square 39.58 with prob < 1
The total number of observations was 431 with MLE Chi Square = 486.84 with prob < 1.9e-07
Tucker Lewis Index of factoring reliability = 0.983
RMSEA index = 0.035 and the 90 % confidence intervals are 0.025 0.038
BIC = -1563.5
Fit based upon off diagonal values = 1
Measures of factor score adequacy
MR1 MR2 MR3 MR5 MR4 MR6 MR7 MR10
Correlation of scores with factors 1.00 0.98 0.96 0.90 0.91 0.82 0.79 0.74
Multiple R square of scores with factors 0.99 0.96 0.92 0.80 0.83 0.67 0.62 0.54
Minimum correlation of possible factor scores 0.99 0.93 0.84 0.61 0.66 0.35 0.23 0.09
MR8 MR9 MR11 MR13 MR12
Correlation of scores with factors 0.76 0.76 0.70 0.66 0.68
Multiple R square of scores with factors 0.58 0.58 0.49 0.44 0.46
Minimum correlation of possible factor scores 0.16 0.15 -0.01 -0.12 -0.08
[1] 3
[1] 3
Step 2: Run EFA with varimax rotation
Factor Analysis using method = minres
Call: fa(r = d4_all, nfactors = nfactors_d4_all, rotate = chosenRotType,
fm = "minres", cor = chosenCorType)
Standardized loadings (pattern matrix) based upon correlation matrix
MR1 MR2 MR3 h2 u2 com
happy 0.74 0.50 0.23 0.84 0.16 2.0
depressed 0.51 0.63 0.23 0.71 0.29 2.2
fear 0.83 0.20 0.37 0.86 0.14 1.5
angry 0.67 0.47 0.31 0.76 0.24 2.2
calm 0.75 0.35 0.32 0.79 0.21 1.8
sounds 0.45 0.08 0.75 0.77 0.23 1.7
seeing 0.56 0.13 0.67 0.79 0.21 2.0
temperature 0.41 0.06 0.72 0.68 0.32 1.6
odors 0.58 0.22 0.58 0.73 0.27 2.3
depth 0.28 0.32 0.68 0.65 0.35 1.8
computations -0.41 0.51 0.40 0.58 0.42 2.8
thoughts 0.60 0.50 0.33 0.72 0.28 2.6
reasoning 0.16 0.66 0.48 0.70 0.30 2.0
remembering 0.25 0.41 0.71 0.73 0.27 1.9
beliefs 0.19 0.82 0.14 0.73 0.27 1.2
hungry 0.84 0.11 0.34 0.83 0.17 1.4
tired 0.85 0.21 0.35 0.90 0.10 1.5
pain 0.86 0.14 0.33 0.88 0.12 1.3
nauseated 0.70 0.40 0.26 0.72 0.28 1.9
safe 0.73 0.33 0.36 0.78 0.22 1.9
love 0.65 0.58 0.18 0.78 0.22 2.1
recognizing 0.43 0.39 0.59 0.68 0.32 2.6
communicating 0.34 0.31 0.71 0.71 0.29 1.9
guilt 0.31 0.82 0.13 0.79 0.21 1.3
disrespected 0.29 0.78 0.18 0.73 0.27 1.4
free_will 0.59 0.42 0.39 0.67 0.33 2.6
choices 0.37 0.37 0.67 0.72 0.28 2.2
self_restraint 0.24 0.70 0.38 0.69 0.31 1.8
intentions 0.48 0.48 0.44 0.65 0.35 3.0
goal 0.23 0.41 0.57 0.55 0.45 2.2
conscious 0.65 0.36 0.38 0.69 0.31 2.2
self_aware 0.38 0.59 0.35 0.62 0.38 2.4
desires 0.68 0.44 0.34 0.78 0.22 2.3
embarrassed 0.28 0.82 0.09 0.76 0.24 1.3
emo_recog 0.32 0.72 0.30 0.71 0.29 1.7
joy 0.71 0.53 0.25 0.84 0.16 2.1
morality 0.17 0.80 0.25 0.74 0.26 1.3
personality 0.63 0.54 0.33 0.80 0.20 2.5
pleasure 0.79 0.36 0.35 0.87 0.13 1.8
pride 0.43 0.74 0.20 0.77 0.23 1.8
MR1 MR2 MR3
SS loadings 12.11 10.18 7.40
Proportion Var 0.30 0.25 0.18
Cumulative Var 0.30 0.56 0.74
Proportion Explained 0.41 0.34 0.25
Cumulative Proportion 0.41 0.75 1.00
Mean item complexity = 2
Test of the hypothesis that 3 factors are sufficient.
The degrees of freedom for the null model are 780 and the objective function was 52.07 with Chi Square of 21651.8
The degrees of freedom for the model are 663 and the objective function was 5.43
The root mean square of the residuals (RMSR) is 0.02
The df corrected root mean square of the residuals is 0.03
The harmonic number of observations is 431 with the empirical chi square 412.62 with prob < 1
The total number of observations was 431 with MLE Chi Square = 2246.7 with prob < 5.9e-171
Tucker Lewis Index of factoring reliability = 0.91
RMSEA index = 0.077 and the 90 % confidence intervals are 0.071 0.078
BIC = -1775.13
Fit based upon off diagonal values = 1
Measures of factor score adequacy
MR1 MR2 MR3
Correlation of scores with factors 0.98 0.97 0.95
Multiple R square of scores with factors 0.95 0.95 0.91
Minimum correlation of possible factor scores 0.91 0.90 0.81
back to TOC
Big factor loadings table for all studies (Studies 1-4)
Joining, by = "mc"
Joining, by = "mc"
Joining, by = "mc"
Figures
Joining, by = "condition"
joining character vector and factor, coercing into character vectorJoining, by = "condition"
joining character vector and factor, coercing into character vectorJoining, by = "condition"
joining character vector and factor, coercing into character vectorJoining, by = "condition"
joining character vector and factor, coercing into character vector
Joining, by = c("condition", "mc", "ci_lower", "mean", "ci_upper", "n", "study")
Joining, by = c("condition", "mc", "ci_lower", "mean", "ci_upper", "n", "study")
Joining, by = c("condition", "mc", "ci_lower", "mean", "ci_upper", "n", "study")
Joining, by = "mc"
Joining, by = "mc"
Joining, by = "mc"
Joining, by = "mc"
Joining, by = "mc"
LS0tCnRpdGxlOiAiQm9keSwgSGVhcnQsICYgTWluZCAoV2Vpc21hbiwgRHdlY2ssICYgTWFya21hbiwgc3VibWl0dGVkKSIKb3V0cHV0OgogIGh0bWxfbm90ZWJvb2s6CiAgICB0aGVtZTogZmxhdGx5CiAgICB0b2M6IHllcwogIGh0bWxfZG9jdW1lbnQ6CiAgICB0b2M6IHllcwogIHBkZl9kb2N1bWVudDoKICAgIHRvYzogeWVzCi0tLQoKYGBge3IgZ2xvYmFsX29wdGlvbnMsIGluY2x1ZGUgPSBGQUxTRX0Ka25pdHI6Om9wdHNfY2h1bmskc2V0KGVjaG8gPSBGQUxTRSwgd2FybmluZyA9IEZBTFNFLCBtZXNzYWdlID0gRkFMU0UsCiAgICAgICAgICAgICAgICAgICAgICBmaWcud2lkdGggPSAxMCwgZmlnLmhlaWdodCA9IDMwKQpgYGAKCiMgU2V0dXAKCmBgYHtyIHdvcmtzcGFjZSBzZXR1cH0KIyBsb2FkIGxpYnJhcmllcwpsaWJyYXJ5KHRpZHl2ZXJzZSkKbGlicmFyeShwc3ljaCkKbGlicmFyeShsYW5nY29nKSAjIHNvdXJjZTogaHR0cHM6Ly9naXRodWIuY29tL2xhbmdjb2cvbGFuZ2NvZwpsaWJyYXJ5KHNjYXR0ZXJwbG90M2QpCmxpYnJhcnkobGF0dGljZSkKbGlicmFyeShkaXJlY3RsYWJlbHMpCmxpYnJhcnkocGxvdGx5KQpsaWJyYXJ5KFJDb2xvckJyZXdlcikKCiMgY2xlYXIgd29ya3NwYWNlCnJtKGxpc3QgPSBscyhhbGwgPSBUKSkKZ3JhcGhpY3Mub2ZmKCkKYGBgCgpgYGB7ciBmdW5jdGlvbnN9CiMgbWFrZSBuYS5ybSA9IFQgdmVyc2lvbnMgb2Ygc3VtbWFyeSBmdW5jdGlvbnMKbWVhbl9uYSA8LSBmdW5jdGlvbih4KSB7bWVhbih4LCBuYS5ybSA9IFQpfQpjaV9sb3dlcl9uYSA8LSBmdW5jdGlvbih4KSB7cXVhbnRpbGUoeCwgMC4wMjUsIG5hLnJtID0gVCl9CmNpX3VwcGVyX25hIDwtIGZ1bmN0aW9uKHgpIHtxdWFudGlsZSh4LCAwLjk3NSwgbmEucm0gPSBUKX0KCiMgbWFrZSByb3VuZGluZyBmdW5jdGlvbgpyb3VuZDIgPC0gZnVuY3Rpb24oeCkge2Zvcm1hdChyb3VuZCh4LCAyKSwgbnNtYWxsID0gMil9CgojIG1ha2UgY2xlYW51cCBmdW5jdGlvbgpjbGVhbnVwIDwtIGZ1bmN0aW9uKGRhdGFzb3VyY2UpIHsKICBpZihkYXRhc291cmNlICVpbiUgYygic3R1ZHkgMSIsICJzdHVkeSAyIikpIHsKICAgIAogICAgIyBzZXQgdGFyZ2V0IGRhdGFzZXQKICAgIGlmKGRhdGFzb3VyY2UgPT0gInN0dWR5IDEiKXtkIDwtIGRfcmF3X3N0dWR5MX0KICAgIGlmKGRhdGFzb3VyY2UgPT0gInN0dWR5IDIiKXtkIDwtIGRfcmF3X3N0dWR5Mn0KICAgIAogICAgIyBlbmFjdCBleGNsdXNpb25hcnkgY3JpdGVyaWEKICAgIGRfY2xlYW5fMSA8LSBkICU+JQogICAgICBtdXRhdGUoZmluaXNoZWRfbW9kID0gaWZlbHNlKGlzLm5hKENBVENIKSwgMCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZmVsc2UoZmluaXNoZWQgPT0gMSwgMSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMC41KSkpICU+JQogICAgICBmaWx0ZXIoQ0FUQ0ggPT0gMSwgIyBleGNsdWRlIFBzIHdobyBmYWlsIGNhdGNoIHRyaWFscyAKICAgICAgICAgICAgIGZpbmlzaGVkX21vZCAhPSAwKSAlPiUgIyBleGNsdWRlIFBzIHdobyBkaWQgbm90IGNvbXBsZXRlIHRhc2sKICAgICAgbXV0YXRlKHlvYl9jb3JyZWN0ID0gYXMubnVtZXJpYygKICAgICAgICBpZmVsc2UoYXMubnVtZXJpYyhhcy5jaGFyYWN0ZXIoeW9iKSkgPiAxOTAwICYgCiAgICAgICAgICAgICAgICAgYXMubnVtZXJpYyhhcy5jaGFyYWN0ZXIoeW9iKSkgPCAyMDAwLCAKICAgICAgICAgICAgICAgYXMubnVtZXJpYyhhcy5jaGFyYWN0ZXIoeW9iKSksIE5BKSksICMgY29ycmVjdCBmb3JtYXR0aW5nIGluIHlvYgogICAgICAgIGFnZV9hcHByb3ggPSAyMDE2IC0geW9iX2NvcnJlY3QpICU+JSAjIGNhbGN1bGF0ZSBhcHByb3hpbWF0ZSBhZ2UKICAgICAgbXV0YXRlKGdlbmRlciA9IGZhY3RvcihnZW5kZXIsIGxldmVscyA9IGMoMSwgMiwgMCksIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVscyA9IGMoIm0iLCAiZiIsICJvdGhlciIpKSkgJT4lCiAgICAgIGZpbHRlcihhZ2VfYXBwcm94ID49IDE4KSAjIGV4Y2x1ZGUgUHMgd2hvIGFyZSB5b3VuZ2VyIHRoYW4gMTggeWVhcnMKICAgIAogICAgIyByZWNvZGUgYmFja2dyb3VuZCBhbmQgZGVtb2dyYXBoaWMgdmFyaWFibGVzCiAgICBkX2NsZWFuIDwtIGRfY2xlYW5fMSAlPiUKICAgICAgbXV0YXRlKCAjIGRlYWwgd2l0aCBzdHVkeSBudW1iZXIKICAgICAgICBzdHVkeSA9IGZhY3RvcihzdHVkeSkpICU+JQogICAgICBtdXRhdGUoICMgZGVhbCB3aXRoIHN0dWR5IGR1cmF0aW9uCiAgICAgICAgZHVyYXRpb24gPSBhcy5udW1lcmljKGRpZmZ0aW1lKHN0cnB0aW1lKGVuZF90aW1lLCAiJUk6JU06JVMiKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RycHRpbWUoc3RhcnRfdGltZSwgIiVJOiVNOiVTIiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuaXRzID0gIm1pbnMiKSkpICU+JQogICAgICBtdXRhdGUoICMgZGVhbCB3aXRoIHJhY2UKICAgICAgICByYWNlX2FzaWFuX2Vhc3QgPSAKICAgICAgICAgIGZhY3RvcihpZmVsc2UoaXMubmEocmFjZV9hc2lhbl9lYXN0KSwgIiIsICJhc2lhbl9lYXN0ICIpKSwKICAgICAgICByYWNlX2FzaWFuX3NvdXRoID0gCiAgICAgICAgICBmYWN0b3IoaWZlbHNlKGlzLm5hKHJhY2VfYXNpYW5fc291dGgpLCAiIiwgImFzaWFuX3NvdXRoICIpKSwKICAgICAgICByYWNlX2FzaWFuX290aGVyID0gCiAgICAgICAgICBmYWN0b3IoaWZlbHNlKGlzLm5hKHJhY2VfYXNpYW5fb3RoZXIpLCAiIiwgImFzaWFuX290aGVyICIpKSwKICAgICAgICByYWNlX2JsYWNrID0gCiAgICAgICAgICBmYWN0b3IoaWZlbHNlKGlzLm5hKHJhY2VfYmxhY2spLCAiIiwgImJsYWNrICIpKSwKICAgICAgICByYWNlX2hpc3BhbmljID0gCiAgICAgICAgICBmYWN0b3IoaWZlbHNlKGlzLm5hKHJhY2VfaGlzcGFuaWMpLCAiIiwgImhpc3BhbmljICIpKSwKICAgICAgICByYWNlX21pZGRsZV9lYXN0ZXJuID0gCiAgICAgICAgICBmYWN0b3IoaWZlbHNlKGlzLm5hKHJhY2VfbWlkZGxlX2Vhc3Rlcm4pLCAiIiwgIm1pZGRsZV9lYXN0ZXJuICIpKSwKICAgICAgICByYWNlX25hdGl2ZV9hbWVyaWNhbiA9IAogICAgICAgICAgZmFjdG9yKGlmZWxzZShpcy5uYShyYWNlX25hdGl2ZV9hbWVyaWNhbiksICIiLCAibmF0aXZlX2FtZXJpY2FuICIpKSwKICAgICAgICByYWNlX3BhY19pc2xhbmRlciA9IAogICAgICAgICAgZmFjdG9yKGlmZWxzZShpcy5uYShyYWNlX3BhY19pc2xhbmRlciksICIiLCAicGFjX2lzbGFuZGVyICIpKSwKICAgICAgICByYWNlX3doaXRlID0gCiAgICAgICAgICBmYWN0b3IoaWZlbHNlKGlzLm5hKHJhY2Vfd2hpdGUpLCAiIiwgIndoaXRlICIpKSwKICAgICAgICByYWNlX290aGVyX3ByZWZubyA9IAogICAgICAgICAgZmFjdG9yKGlmZWxzZShpcy5uYShyYWNlX290aGVyX3ByZWZubyksICIiLCAib3RoZXJfcHJlZm5vICIpKSwKICAgICAgICByYWNlX2NhdCA9IHBhc3RlMChyYWNlX2FzaWFuX2Vhc3QsIHJhY2VfYXNpYW5fc291dGgsIHJhY2VfYXNpYW5fb3RoZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgcmFjZV9ibGFjaywgcmFjZV9oaXNwYW5pYywgcmFjZV9taWRkbGVfZWFzdGVybiwKICAgICAgICAgICAgICAgICAgICAgICAgICByYWNlX25hdGl2ZV9hbWVyaWNhbiwgcmFjZV9wYWNfaXNsYW5kZXIsIHJhY2Vfd2hpdGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgcmFjZV9vdGhlcl9wcmVmbm8pLAogICAgICAgIHJhY2VfY2F0MiA9IGZhY3RvcihzdWIoIiArJCIsICIiLCByYWNlX2NhdCkpLAogICAgICAgIHJhY2VfY2F0MyA9IGZhY3RvcihpZmVsc2UoZ3JlcGwoIiAiLCByYWNlX2NhdDIpID09IFQsICJtdWx0aXJhY2lhbCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcy5jaGFyYWN0ZXIocmFjZV9jYXQyKSkpKSAlPiUKICAgICAgZHBseXI6OnNlbGVjdChzdHVkeSwgc3ViaWQ6ZW5kX3RpbWUsIGR1cmF0aW9uLCBmaW5pc2hlZDpnZW5kZXIsIAogICAgICAgICAgICAgcmVsaWdpb25fYnVkZGhpc206YWdlX2FwcHJveCwgcmFjZV9jYXQzKSAlPiUKICAgICAgcmVuYW1lKHJhY2VfY2F0ID0gcmFjZV9jYXQzKSAlPiUKICAgICAgbXV0YXRlKCAjIGRlYWwgd2l0aCByZWxpZ2lvbgogICAgICAgIHJlbGlnaW9uX2J1ZGRoaXNtID0gCiAgICAgICAgICBmYWN0b3IoaWZlbHNlKGlzLm5hKHJlbGlnaW9uX2J1ZGRoaXNtKSwgIiIsICJidWRkaGlzbSAiKSksCiAgICAgICAgcmVsaWdpb25fY2hyaXN0aWFuaXR5ID0gCiAgICAgICAgICBmYWN0b3IoaWZlbHNlKGlzLm5hKHJlbGlnaW9uX2NocmlzdGlhbml0eSksICIiLCAiY2hyaXN0aWFuaXR5ICIpKSwKICAgICAgICByZWxpZ2lvbl9oaW5kdWlzbSA9IAogICAgICAgICAgZmFjdG9yKGlmZWxzZShpcy5uYShyZWxpZ2lvbl9oaW5kdWlzbSksICIiLCAiaGluZHVpc20gIikpLAogICAgICAgIHJlbGlnaW9uX2lzbGFtID0gCiAgICAgICAgICBmYWN0b3IoaWZlbHNlKGlzLm5hKHJlbGlnaW9uX2lzbGFtKSwgIiIsICJpc2xhbSAiKSksCiAgICAgICAgcmVsaWdpb25famFpbmlzbSA9IAogICAgICAgICAgZmFjdG9yKGlmZWxzZShpcy5uYShyZWxpZ2lvbl9qYWluaXNtKSwgIiIsICJqYWluaXNtICIpKSwKICAgICAgICByZWxpZ2lvbl9qdWRhaXNtID0gCiAgICAgICAgICBmYWN0b3IoaWZlbHNlKGlzLm5hKHJlbGlnaW9uX2p1ZGFpc20pLCAiIiwgImp1ZGFpc20gIikpLAogICAgICAgIHJlbGlnaW9uX3Npa2hpc20gPSAKICAgICAgICAgIGZhY3RvcihpZmVsc2UoaXMubmEocmVsaWdpb25fc2lraGlzbSksICIiLCAic2lraGlzbSAiKSksCiAgICAgICAgcmVsaWdpb25fb3RoZXIgPSAKICAgICAgICAgIGZhY3RvcihpZmVsc2UoaXMubmEocmVsaWdpb25fb3RoZXIpLCAiIiwgIm90aGVyICIpKSwKICAgICAgICByZWxpZ2lvbl9ub25lID0gCiAgICAgICAgICBmYWN0b3IoaWZlbHNlKGlzLm5hKHJlbGlnaW9uX25vbmUpLCAiIiwgIm5vbmUgIikpLAogICAgICAgIHJlbGlnaW9uX3ByZWZubyA9IAogICAgICAgICAgZmFjdG9yKGlmZWxzZShpcy5uYShyZWxpZ2lvbl9wcmVmbm8pLCAiIiwgIm90aGVyX3ByZWZubyAiKSksCiAgICAgICAgcmVsaWdpb25fY2F0ID0gcGFzdGUwKHJlbGlnaW9uX2J1ZGRoaXNtLCByZWxpZ2lvbl9jaHJpc3RpYW5pdHksIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWxpZ2lvbl9oaW5kdWlzbSwgcmVsaWdpb25faXNsYW0sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWxpZ2lvbl9qYWluaXNtLCByZWxpZ2lvbl9qdWRhaXNtLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVsaWdpb25fc2lraGlzbSwgcmVsaWdpb25fb3RoZXIsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWxpZ2lvbl9ub25lLCByZWxpZ2lvbl9wcmVmbm8pLAogICAgICAgIHJlbGlnaW9uX2NhdDIgPSBmYWN0b3Ioc3ViKCIgKyQiLCAiIiwgcmVsaWdpb25fY2F0KSksCiAgICAgICAgcmVsaWdpb25fY2F0MyA9IGZhY3RvcihpZmVsc2UoZ3JlcGwoIiAiLCByZWxpZ2lvbl9jYXQyKSA9PSBULCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibXVsdGlyZWxpZ2lvdXMiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzLmNoYXJhY3RlcihyZWxpZ2lvbl9jYXQyKSkpKSAlPiUKICAgICAgZHBseXI6OnNlbGVjdChzdHVkeTpnZW5kZXIsIGZlZWRiYWNrOnJhY2VfY2F0LCByZWxpZ2lvbl9jYXQzKSAlPiUKICAgICAgcmVuYW1lKHJlbGlnaW9uX2NhdCA9IHJlbGlnaW9uX2NhdDMpCiAgICAKICAgICMgcmVtb3ZlIGV4dHJhbmVvdXMgZGZzIGFuZCB2YXJpYWJsZXMKICAgIHJtKGQsIGRfY2xlYW5fMSkKICB9CiAgCiAgaWYoZGF0YXNvdXJjZSA9PSAic3R1ZHkgMyIpIHsKICAgIAogICAgIyBzZXQgdGFyZ2V0IGRhdGFzZXQKICAgIGQgPC0gZF9yYXdfc3R1ZHkzCiAgICAKICAgICMgZW5hY3QgZXhjbHVzaW9uYXJ5IGNyaXRlcmlhCiAgICBkX2NsZWFuXzEgPC0gZCAlPiUKICAgICAgbXV0YXRlKGZpbmlzaGVkX21vZCA9IGlmZWxzZShpcy5uYShDQVRDSC4uY2hhcmFjdGVyTCkgfCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzLm5hKENBVENILi5jaGFyYWN0ZXJSKSwgMCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZmVsc2UoZmluaXNoZWQgPT0gMSwgMSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMC41KSkpICU+JQogICAgICBmaWx0ZXIoQ0FUQ0guLmNoYXJhY3RlckwgPT0gNSwgIyBleGNsdWRlIFBzIHdobyBmYWlsIGNhdGNoIHRyaWFscyAKICAgICAgICAgICAgIENBVENILi5jaGFyYWN0ZXJSID09IDUsCiAgICAgICAgICAgICBmaW5pc2hlZF9tb2QgIT0gMCkgJT4lICMgZXhjbHVkZSBQcyB3aG8gZGlkIG5vdCBjb21wbGV0ZSB0YXNrCiAgICAgIG11dGF0ZSh5b2JfY29ycmVjdCA9IGFzLm51bWVyaWMoCiAgICAgICAgaWZlbHNlKGFzLm51bWVyaWMoYXMuY2hhcmFjdGVyKHlvYikpID4gMTkwMCAmIAogICAgICAgICAgICAgICAgIGFzLm51bWVyaWMoYXMuY2hhcmFjdGVyKHlvYikpIDwgMjAwMCwgCiAgICAgICAgICAgICAgIGFzLm51bWVyaWMoYXMuY2hhcmFjdGVyKHlvYikpLCBOQSkpLCAjIGNvcnJlY3QgZm9ybWF0dGluZyBpbiB5b2IKICAgICAgICBhZ2VfYXBwcm94ID0gMjAxNiAtIHlvYl9jb3JyZWN0KSAlPiUgIyBjYWxjdWxhdGUgYXBwcm94aW1hdGUgYWdlCiAgICAgIG11dGF0ZShnZW5kZXIgPSBmYWN0b3IoZ2VuZGVyLCBsZXZlbHMgPSBjKDEsIDIsIDApLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbHMgPSBjKCJtIiwgImYiLCAib3RoZXIiKSkpICU+JQogICAgICBmaWx0ZXIoYWdlX2FwcHJveCA+PSAxOCkgIyBleGNsdWRlIFBzIHdobyBhcmUgeW91bmdlciB0aGFuIDE4IHllYXJzCiAgICAKICAgICMgcmVjb2RlIGJhY2tncm91bmQgYW5kIGRlbW9ncmFwaGljIHZhcmlhYmxlcwogICAgZF9jbGVhbl8yIDwtIGRfY2xlYW5fMSAlPiUKICAgICAgbXV0YXRlKCAjIGRlYWwgd2l0aCBzdHVkeSBudW1iZXIKICAgICAgICBzdHVkeSA9IGZhY3RvcihzdHVkeSkpICU+JQogICAgICBtdXRhdGUoICMgZGVhbCB3aXRoIHN0dWR5IGR1cmF0aW9uCiAgICAgICAgZHVyYXRpb24gPSBhcy5udW1lcmljKGRpZmZ0aW1lKHN0cnB0aW1lKGVuZF90aW1lLCAiJUk6JU06JVMiKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RycHRpbWUoc3RhcnRfdGltZSwgIiVJOiVNOiVTIiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuaXRzID0gIm1pbnMiKSkpICU+JQogICAgICBtdXRhdGUoICMgZGVhbCB3aXRoIHJhY2UKICAgICAgICByYWNlX2FzaWFuX2Vhc3QgPSAKICAgICAgICAgIGZhY3RvcihpZmVsc2UoaXMubmEocmFjZV9hc2lhbl9lYXN0KSwgIiIsICJhc2lhbl9lYXN0ICIpKSwKICAgICAgICByYWNlX2FzaWFuX3NvdXRoID0gCiAgICAgICAgICBmYWN0b3IoaWZlbHNlKGlzLm5hKHJhY2VfYXNpYW5fc291dGgpLCAiIiwgImFzaWFuX3NvdXRoICIpKSwKICAgICAgICByYWNlX2FzaWFuX290aGVyID0gCiAgICAgICAgICBmYWN0b3IoaWZlbHNlKGlzLm5hKHJhY2VfYXNpYW5fb3RoZXIpLCAiIiwgImFzaWFuX290aGVyICIpKSwKICAgICAgICByYWNlX2JsYWNrID0gCiAgICAgICAgICBmYWN0b3IoaWZlbHNlKGlzLm5hKHJhY2VfYmxhY2spLCAiIiwgImJsYWNrICIpKSwKICAgICAgICByYWNlX2hpc3BhbmljID0gCiAgICAgICAgICBmYWN0b3IoaWZlbHNlKGlzLm5hKHJhY2VfaGlzcGFuaWMpLCAiIiwgImhpc3BhbmljICIpKSwKICAgICAgICByYWNlX21pZGRsZV9lYXN0ZXJuID0gCiAgICAgICAgICBmYWN0b3IoaWZlbHNlKGlzLm5hKHJhY2VfbWlkZGxlX2Vhc3Rlcm4pLCAiIiwgIm1pZGRsZV9lYXN0ZXJuICIpKSwKICAgICAgICByYWNlX25hdGl2ZV9hbWVyaWNhbiA9IAogICAgICAgICAgZmFjdG9yKGlmZWxzZShpcy5uYShyYWNlX25hdGl2ZV9hbWVyaWNhbiksICIiLCAibmF0aXZlX2FtZXJpY2FuICIpKSwKICAgICAgICByYWNlX3BhY19pc2xhbmRlciA9IAogICAgICAgICAgZmFjdG9yKGlmZWxzZShpcy5uYShyYWNlX3BhY19pc2xhbmRlciksICIiLCAicGFjX2lzbGFuZGVyICIpKSwKICAgICAgICByYWNlX3doaXRlID0gCiAgICAgICAgICBmYWN0b3IoaWZlbHNlKGlzLm5hKHJhY2Vfd2hpdGUpLCAiIiwgIndoaXRlICIpKSwKICAgICAgICByYWNlX290aGVyX3ByZWZubyA9IAogICAgICAgICAgZmFjdG9yKGlmZWxzZShpcy5uYShyYWNlX290aGVyX3ByZWZubyksICIiLCAib3RoZXJfcHJlZm5vICIpKSwKICAgICAgICByYWNlX2NhdCA9IHBhc3RlMChyYWNlX2FzaWFuX2Vhc3QsIHJhY2VfYXNpYW5fc291dGgsIHJhY2VfYXNpYW5fb3RoZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgcmFjZV9ibGFjaywgcmFjZV9oaXNwYW5pYywgcmFjZV9taWRkbGVfZWFzdGVybiwKICAgICAgICAgICAgICAgICAgICAgICAgICByYWNlX25hdGl2ZV9hbWVyaWNhbiwgcmFjZV9wYWNfaXNsYW5kZXIsIHJhY2Vfd2hpdGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgcmFjZV9vdGhlcl9wcmVmbm8pLAogICAgICAgIHJhY2VfY2F0MiA9IGZhY3RvcihzdWIoIiArJCIsICIiLCByYWNlX2NhdCkpLAogICAgICAgIHJhY2VfY2F0MyA9IGZhY3RvcihpZmVsc2UoZ3JlcGwoIiAiLCByYWNlX2NhdDIpID09IFQsICJtdWx0aXJhY2lhbCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcy5jaGFyYWN0ZXIocmFjZV9jYXQyKSkpKSAlPiUKICAgICAgZHBseXI6OnNlbGVjdChzdHVkeSwgc3ViaWQ6ZW5kX3RpbWUsIGR1cmF0aW9uLCBmaW5pc2hlZDpnZW5kZXIsIAogICAgICAgICAgICAgcmVsaWdpb25fYnVkZGhpc206YWdlX2FwcHJveCwgcmFjZV9jYXQzKSAlPiUKICAgICAgcmVuYW1lKHJhY2VfY2F0ID0gcmFjZV9jYXQzKSAlPiUKICAgICAgbXV0YXRlKCAjIGRlYWwgd2l0aCByZWxpZ2lvbgogICAgICAgIHJlbGlnaW9uX2J1ZGRoaXNtID0gCiAgICAgICAgICBmYWN0b3IoaWZlbHNlKGlzLm5hKHJlbGlnaW9uX2J1ZGRoaXNtKSwgIiIsICJidWRkaGlzbSAiKSksCiAgICAgICAgcmVsaWdpb25fY2hyaXN0aWFuaXR5ID0gCiAgICAgICAgICBmYWN0b3IoaWZlbHNlKGlzLm5hKHJlbGlnaW9uX2NocmlzdGlhbml0eSksICIiLCAiY2hyaXN0aWFuaXR5ICIpKSwKICAgICAgICByZWxpZ2lvbl9oaW5kdWlzbSA9IAogICAgICAgICAgZmFjdG9yKGlmZWxzZShpcy5uYShyZWxpZ2lvbl9oaW5kdWlzbSksICIiLCAiaGluZHVpc20gIikpLAogICAgICAgIHJlbGlnaW9uX2lzbGFtID0gCiAgICAgICAgICBmYWN0b3IoaWZlbHNlKGlzLm5hKHJlbGlnaW9uX2lzbGFtKSwgIiIsICJpc2xhbSAiKSksCiAgICAgICAgcmVsaWdpb25famFpbmlzbSA9IAogICAgICAgICAgZmFjdG9yKGlmZWxzZShpcy5uYShyZWxpZ2lvbl9qYWluaXNtKSwgIiIsICJqYWluaXNtICIpKSwKICAgICAgICByZWxpZ2lvbl9qdWRhaXNtID0gCiAgICAgICAgICBmYWN0b3IoaWZlbHNlKGlzLm5hKHJlbGlnaW9uX2p1ZGFpc20pLCAiIiwgImp1ZGFpc20gIikpLAogICAgICAgIHJlbGlnaW9uX3Npa2hpc20gPSAKICAgICAgICAgIGZhY3RvcihpZmVsc2UoaXMubmEocmVsaWdpb25fc2lraGlzbSksICIiLCAic2lraGlzbSAiKSksCiAgICAgICAgcmVsaWdpb25fb3RoZXIgPSAKICAgICAgICAgIGZhY3RvcihpZmVsc2UoaXMubmEocmVsaWdpb25fb3RoZXIpLCAiIiwgIm90aGVyICIpKSwKICAgICAgICByZWxpZ2lvbl9ub25lID0gCiAgICAgICAgICBmYWN0b3IoaWZlbHNlKGlzLm5hKHJlbGlnaW9uX25vbmUpLCAiIiwgIm5vbmUgIikpLAogICAgICAgIHJlbGlnaW9uX3ByZWZubyA9IAogICAgICAgICAgZmFjdG9yKGlmZWxzZShpcy5uYShyZWxpZ2lvbl9wcmVmbm8pLCAiIiwgIm90aGVyX3ByZWZubyAiKSksCiAgICAgICAgcmVsaWdpb25fY2F0ID0gcGFzdGUwKHJlbGlnaW9uX2J1ZGRoaXNtLCByZWxpZ2lvbl9jaHJpc3RpYW5pdHksIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWxpZ2lvbl9oaW5kdWlzbSwgcmVsaWdpb25faXNsYW0sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWxpZ2lvbl9qYWluaXNtLCByZWxpZ2lvbl9qdWRhaXNtLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVsaWdpb25fc2lraGlzbSwgcmVsaWdpb25fb3RoZXIsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWxpZ2lvbl9ub25lLCByZWxpZ2lvbl9wcmVmbm8pLAogICAgICAgIHJlbGlnaW9uX2NhdDIgPSBmYWN0b3Ioc3ViKCIgKyQiLCAiIiwgcmVsaWdpb25fY2F0KSksCiAgICAgICAgcmVsaWdpb25fY2F0MyA9IGZhY3RvcihpZmVsc2UoZ3JlcGwoIiAiLCByZWxpZ2lvbl9jYXQyKSA9PSBULCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibXVsdGlyZWxpZ2lvdXMiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzLmNoYXJhY3RlcihyZWxpZ2lvbl9jYXQyKSkpKSAlPiUKICAgICAgZHBseXI6OnNlbGVjdChzdHVkeTpnZW5kZXIsIGZlZWRiYWNrOnJhY2VfY2F0LCByZWxpZ2lvbl9jYXQzKSAlPiUKICAgICAgcmVuYW1lKHJlbGlnaW9uX2NhdCA9IHJlbGlnaW9uX2NhdDMpCiAgICAKICAgICMgcmVuYW1lIHJlc3BvbnNlIHZhcmlhYmxlcwogICAgZF9jbGVhbl8zIDwtIGRfY2xlYW5fMgogICAgbmFtZXMoZF9jbGVhbl8zKSA8LSBnc3ViKCJnZXQiLCAiIiwgbmFtZXMoZF9jbGVhbl8zKSkKICAgIG5hbWVzKGRfY2xlYW5fMykgPC0gZ3N1YigiXFwuIiwgIiIsIG5hbWVzKGRfY2xlYW5fMykpCiAgICBuYW1lcyhkX2NsZWFuXzMpIDwtIGdzdWIoImNoYXIiLCAiX2NoYXIiLCBuYW1lcyhkX2NsZWFuXzMpKQogICAgbmFtZXMoZF9jbGVhbl8zKVtuYW1lcyhkX2NsZWFuXzMpICVpbiUgYygiX2NoYXJhY3RlckwiLCAiX2NoYXJhY3RlclIiKV0gPC0gCiAgICAgIGMoImNoYXJhY3RlckwiLCAiY2hhcmFjdGVyUiIpCiAgICAKICAgICMgcmVjb2RlIHJlc3BvbnNlIHZhcmlhYmxlcyAoY2VudGVyKQogICAgZF9jbGVhbl80IDwtIGRfY2xlYW5fMwogICAgZm9yKGkgaW4gMTE6OTIpIHsKICAgICAgZF9jbGVhbl80WyxpXSA8LSBkX2NsZWFuXzRbLGldIC0gNCAjIHRyYW5zZm9ybSBmcm9tIDEgdG8gNyAtLT4gLTMgdG8gMwogICAgfQogICAgCiAgICAjIHJlY29kZSBjaGFyYWN0ZXJMIHZzLiBjaGFyYWN0ZXJSIGFzIGJlZXRsZSB2cy4gcm9ib3QKICAgIGRfY2xlYW5fNV9kZW1vIDwtIGRfY2xlYW5fNCAlPiUKICAgICAgZHBseXI6OnNlbGVjdChzdHVkeTpjb25kaXRpb24sIHlvYjpyZWxpZ2lvbl9jYXQpCiAgICAKICAgIGRfY2xlYW5fNV9jaGFyYWN0ZXJMIDwtIGRfY2xlYW5fNCAlPiUKICAgICAgbXV0YXRlKHRhcmdldCA9IGNoYXJhY3RlckwpICU+JQogICAgICBkcGx5cjo6c2VsZWN0KHN0dWR5LCBzdWJpZCwgdGFyZ2V0LCBoYXBweV9jaGFyYWN0ZXJMOkNBVENIX2NoYXJhY3RlckwpCiAgICBuYW1lcyhkX2NsZWFuXzVfY2hhcmFjdGVyTCkgPC0gZ3N1YigiX2NoYXJhY3RlckwiLCAiIiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lcyhkX2NsZWFuXzVfY2hhcmFjdGVyTCkpCiAgICAKICAgIGRfY2xlYW5fNV9jaGFyYWN0ZXJSIDwtIGRfY2xlYW5fNCAlPiUKICAgICAgbXV0YXRlKHRhcmdldCA9IGNoYXJhY3RlclIpICU+JQogICAgICBkcGx5cjo6c2VsZWN0KHN0dWR5LCBzdWJpZCwgdGFyZ2V0LCBoYXBweV9jaGFyYWN0ZXJSOkNBVENIX2NoYXJhY3RlclIpCiAgICBuYW1lcyhkX2NsZWFuXzVfY2hhcmFjdGVyUikgPC0gZ3N1YigiX2NoYXJhY3RlclIiLCAiIiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lcyhkX2NsZWFuXzVfY2hhcmFjdGVyUikpCiAgICAKICAgIGRfY2xlYW4gPC0gZF9jbGVhbl81X2NoYXJhY3RlckwgJT4lCiAgICAgIGZ1bGxfam9pbihkX2NsZWFuXzVfY2hhcmFjdGVyUikgJT4lCiAgICAgIGZ1bGxfam9pbihkX2NsZWFuXzVfZGVtbykgJT4lCiAgICAgIGRwbHlyOjpzZWxlY3Qoc3R1ZHksIHN1YmlkLCBkYXRlOnJlbGlnaW9uX2NhdCwgdGFyZ2V0OkNBVENIKQogICAgCiAgICAjIHJlbW92ZSBleHRyYW5lb3VzIGRmcyBhbmQgdmFyaWFibGVzCiAgICBybShkLCBkX2NsZWFuXzEsIGRfY2xlYW5fMiwgZF9jbGVhbl8zLCBkX2NsZWFuXzQsIGRfY2xlYW5fNV9jaGFyYWN0ZXJMLCAKICAgICAgIGRfY2xlYW5fNV9jaGFyYWN0ZXJSLCBkX2NsZWFuXzVfZGVtbywgaSkKICB9CiAgCiAgaWYoZGF0YXNvdXJjZSA9PSAic3R1ZHkgNCIpIHsKICAgIAogICAgIyBzZXQgdGFyZ2V0IGRhdGFzZXQKICAgIGQgPC0gZF9yYXdfc3R1ZHk0CgogICAgICAgICMgZW5hY3QgZXhjbHVzaW9uYXJ5IGNyaXRlcmlhCiAgICBkX2NsZWFuXzEgPC0gZCAlPiUKICAgICAgbXV0YXRlKGZpbmlzaGVkX21vZCA9IGlmZWxzZShpcy5uYShDQVRDSCksIDAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZlbHNlKGZpbmlzaGVkID09IDEsIDEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAuNSkpKSAlPiUKICAgICAgZmlsdGVyKENBVENIID09IDEsICMgZXhjbHVkZSBQcyB3aG8gZmFpbCBjYXRjaCB0cmlhbHMgCiAgICAgICAgICAgICBmaW5pc2hlZF9tb2QgIT0gMCkgJT4lICMgZXhjbHVkZSBQcyB3aG8gZGlkIG5vdCBjb21wbGV0ZSB0YXNrCiAgICAgIG11dGF0ZSh5b2JfY29ycmVjdCA9IGFzLm51bWVyaWMoCiAgICAgICAgaWZlbHNlKGFzLm51bWVyaWMoYXMuY2hhcmFjdGVyKHlvYikpID4gMTkwMCAmIAogICAgICAgICAgICAgICAgIGFzLm51bWVyaWMoYXMuY2hhcmFjdGVyKHlvYikpIDwgMjAwMCwgCiAgICAgICAgICAgICAgIGFzLm51bWVyaWMoYXMuY2hhcmFjdGVyKHlvYikpLCBOQSkpLCAjIGNvcnJlY3QgZm9ybWF0dGluZyBpbiB5b2IKICAgICAgICBhZ2VfYXBwcm94ID0gMjAxNiAtIHlvYl9jb3JyZWN0KSAlPiUgIyBjYWxjdWxhdGUgYXBwcm94aW1hdGUgYWdlCiAgICAgIG11dGF0ZShnZW5kZXIgPSBmYWN0b3IoZ2VuZGVyLCBsZXZlbHMgPSBjKDEsIDIsIDApLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbHMgPSBjKCJtIiwgImYiLCAib3RoZXIiKSkpICU+JQogICAgICBmaWx0ZXIoYWdlX2FwcHJveCA+PSAxOCkgIyBleGNsdWRlIFBzIHdobyBhcmUgeW91bmdlciB0aGFuIDE4IHllYXJzCiAgICAKICAgICMgcmVjb2RlIG9uZSBjaGFyYWN0ZXIKICAgIGRfY2xlYW5fMiA8LSBkX2NsZWFuXzEgJT4lCiAgICAgIG11dGF0ZShjb25kaXRpb24gPSBmYWN0b3IoaWZlbHNlKAogICAgICAgIGdyZXBsKCJ2ZWdldGF0aXZlIiwgYXMuY2hhcmFjdGVyKGNvbmRpdGlvbikpLCAicHZzIiwKICAgICAgICBpZmVsc2UoZ3JlcGwoImJsdWUiLCBhcy5jaGFyYWN0ZXIoY29uZGl0aW9uKSksICJibHVlamF5IiwKICAgICAgICAgICAgICAgaWZlbHNlKGdyZXBsKCJjaGltcCIsIGFzLmNoYXJhY3Rlcihjb25kaXRpb24pKSwgImNoaW1wIiwKICAgICAgICAgICAgICAgICAgICAgIGFzLmNoYXJhY3Rlcihjb25kaXRpb24pKSkpKSkKCiAgICAjIHJlY29kZSBiYWNrZ3JvdW5kIGFuZCBkZW1vZ3JhcGhpYyB2YXJpYWJsZXMKICAgIGRfY2xlYW4gPC0gZF9jbGVhbl8yICU+JQogICAgICBtdXRhdGUoICMgZGVhbCB3aXRoIHN0dWR5IG51bWJlcgogICAgICAgIHN0dWR5ID0gZmFjdG9yKHN0dWR5KSkgJT4lCiAgICAgIG11dGF0ZSggIyBkZWFsIHdpdGggc3R1ZHkgZHVyYXRpb24KICAgICAgICBkdXJhdGlvbiA9IGFzLm51bWVyaWMoZGlmZnRpbWUoc3RycHRpbWUoZW5kX3RpbWUsICIlSTolTTolUyIpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJwdGltZShzdGFydF90aW1lLCAiJUk6JU06JVMiKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5pdHMgPSAibWlucyIpKSkgJT4lCiAgICAgIG11dGF0ZSggIyBkZWFsIHdpdGggcmFjZQogICAgICAgIHJhY2VfYXNpYW5fZWFzdCA9IAogICAgICAgICAgZmFjdG9yKGlmZWxzZShpcy5uYShyYWNlX2FzaWFuX2Vhc3QpLCAiIiwgImFzaWFuX2Vhc3QgIikpLAogICAgICAgIHJhY2VfYXNpYW5fc291dGggPSAKICAgICAgICAgIGZhY3RvcihpZmVsc2UoaXMubmEocmFjZV9hc2lhbl9zb3V0aCksICIiLCAiYXNpYW5fc291dGggIikpLAogICAgICAgIHJhY2VfYXNpYW5fb3RoZXIgPSAKICAgICAgICAgIGZhY3RvcihpZmVsc2UoaXMubmEocmFjZV9hc2lhbl9vdGhlciksICIiLCAiYXNpYW5fb3RoZXIgIikpLAogICAgICAgIHJhY2VfYmxhY2sgPSAKICAgICAgICAgIGZhY3RvcihpZmVsc2UoaXMubmEocmFjZV9ibGFjayksICIiLCAiYmxhY2sgIikpLAogICAgICAgIHJhY2VfaGlzcGFuaWMgPSAKICAgICAgICAgIGZhY3RvcihpZmVsc2UoaXMubmEocmFjZV9oaXNwYW5pYyksICIiLCAiaGlzcGFuaWMgIikpLAogICAgICAgIHJhY2VfbWlkZGxlX2Vhc3Rlcm4gPSAKICAgICAgICAgIGZhY3RvcihpZmVsc2UoaXMubmEocmFjZV9taWRkbGVfZWFzdGVybiksICIiLCAibWlkZGxlX2Vhc3Rlcm4gIikpLAogICAgICAgIHJhY2VfbmF0aXZlX2FtZXJpY2FuID0gCiAgICAgICAgICBmYWN0b3IoaWZlbHNlKGlzLm5hKHJhY2VfbmF0aXZlX2FtZXJpY2FuKSwgIiIsICJuYXRpdmVfYW1lcmljYW4gIikpLAogICAgICAgIHJhY2VfcGFjX2lzbGFuZGVyID0gCiAgICAgICAgICBmYWN0b3IoaWZlbHNlKGlzLm5hKHJhY2VfcGFjX2lzbGFuZGVyKSwgIiIsICJwYWNfaXNsYW5kZXIgIikpLAogICAgICAgIHJhY2Vfd2hpdGUgPSAKICAgICAgICAgIGZhY3RvcihpZmVsc2UoaXMubmEocmFjZV93aGl0ZSksICIiLCAid2hpdGUgIikpLAogICAgICAgIHJhY2Vfb3RoZXJfcHJlZm5vID0gCiAgICAgICAgICBmYWN0b3IoaWZlbHNlKGlzLm5hKHJhY2Vfb3RoZXJfcHJlZm5vKSwgIiIsICJvdGhlcl9wcmVmbm8gIikpLAogICAgICAgIHJhY2VfY2F0ID0gcGFzdGUwKHJhY2VfYXNpYW5fZWFzdCwgcmFjZV9hc2lhbl9zb3V0aCwgcmFjZV9hc2lhbl9vdGhlciwKICAgICAgICAgICAgICAgICAgICAgICAgICByYWNlX2JsYWNrLCByYWNlX2hpc3BhbmljLCByYWNlX21pZGRsZV9lYXN0ZXJuLAogICAgICAgICAgICAgICAgICAgICAgICAgIHJhY2VfbmF0aXZlX2FtZXJpY2FuLCByYWNlX3BhY19pc2xhbmRlciwgcmFjZV93aGl0ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICByYWNlX290aGVyX3ByZWZubyksCiAgICAgICAgcmFjZV9jYXQyID0gZmFjdG9yKHN1YigiICskIiwgIiIsIHJhY2VfY2F0KSksCiAgICAgICAgcmFjZV9jYXQzID0gZmFjdG9yKGlmZWxzZShncmVwbCgiICIsIHJhY2VfY2F0MikgPT0gVCwgIm11bHRpcmFjaWFsIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzLmNoYXJhY3RlcihyYWNlX2NhdDIpKSkpICU+JQogICAgICBkcGx5cjo6c2VsZWN0KHN0dWR5LCBzdWJpZDplbmRfdGltZSwgZHVyYXRpb24sIGZpbmlzaGVkOmdlbmRlciwgCiAgICAgICAgICAgICBlZHVjYXRpb246YWdlX2FwcHJveCwgcmFjZV9jYXQzKSAlPiUKICAgICAgcmVuYW1lKHJhY2VfY2F0ID0gcmFjZV9jYXQzKQogICAgCiAgICAjIGZpbHRlciBjb25kaXRpb25zIGlmIGRlc2lyZWQKICAgIGlmKGlzLmVsZW1lbnQoIm5vbmUiLCBjaG9zZW5FeGNsdWRlKSkge30gZWxzZSB7CiAgICAgIGRfY2xlYW4gPC0gZF9jbGVhbiAlPiUKICAgICAgICBmaWx0ZXIoIWNvbmRpdGlvbiAlaW4lIGNob3NlbkV4Y2x1ZGUpCiAgICB9CiAgICAKICAgICMgcmVtb3ZlIGV4dHJhbmVvdXMgZGZzIGFuZCB2YXJpYWJsZXMKICAgIHJtKGQsIGRfY2xlYW5fMSwgZF9jbGVhbl8yKQogIH0KICAKIyAgICMgdHJhbnNmb3JtIHRvIDAgdG8gNiBzY2FsZQojICAgZF9jbGVhbiA8LSBkX2NsZWFuICU+JQojICAgICBnYXRoZXIobWMsIHNjb3JlLCBoYXBweTpwcmlkZSkgJT4lCiMgICAgIG11dGF0ZShzY29yZSA9IHNjb3JlICsgMykgJT4lICMgdHJhbnNmb3JtIGZyb20gLTMgdG8gMyAtLT4gMCB0byA2CiMgICAgIHNwcmVhZChtYywgc2NvcmUpCiAgCiAgIyByZW1vdmUgb3V0bGllcnMKICBpZihjaG9zZW5PdXRsaWVySGFuZGxpbmcgPT0gInJlbW92ZSIpIHsKICAgIAogICAgaWYoZGF0YXNvdXJjZSAlaW4lIGMoInN0dWR5IDEiLCAic3R1ZHkgMiIsICJzdHVkeSA0IikpIHsKICAgICAgICBkX2NsZWFuIDwtIGRfY2xlYW4gJT4lCiAgICAgICAgZ2F0aGVyKG1jLCBzY29yZSwgaGFwcHk6cHJpZGUpICU+JQogICAgICAgIGdyb3VwX2J5KGNvbmRpdGlvbiwgbWMpICU+JQogICAgICAgIGZpbHRlcighc2NvcmUgJWluJSBib3hwbG90LnN0YXRzKHNjb3JlLCAyLjUpJG91dCkgJT4lCiAgICAgICAgc3ByZWFkKG1jLCBzY29yZSkgJT4lCiAgICAgICAgYXJyYW5nZShjb25kaXRpb24sIHN1YmlkKQogICAgfQogICAgCiAgICBpZihkYXRhc291cmNlID09ICJzdHVkeSAzIikgewogICAgICBkX2NsZWFuIDwtIGRfY2xlYW4gJT4lCiAgICAgICAgZ2F0aGVyKG1jLCBzY29yZSwgaGFwcHk6cHJpZGUpICU+JQogICAgICAgIGdyb3VwX2J5KHRhcmdldCwgbWMpICU+JQogICAgICAgIGZpbHRlcighc2NvcmUgJWluJSBib3hwbG90LnN0YXRzKHNjb3JlLCAyLjUpJG91dCkgJT4lCiAgICAgICAgc3ByZWFkKG1jLCBzY29yZSkgJT4lCiAgICAgICAgYXJyYW5nZSh0YXJnZXQsIHN1YmlkKQogICAgfQogICAgCiAgfQogIAogICMgZmlsdGVyIGl0ZW1zIGlmIGRlc2lyZWQKICBpZihpcy5lbGVtZW50KCJub25lIiwgY2hvc2VuRXhjbHVkZUl0ZW0pKSB7fSBlbHNlIHsKICAgIGRfY2xlYW4gPC0gZF9jbGVhbiAlPiUKICAgICAgZHBseXI6OnNlbGVjdCgtY29udGFpbnMoY2hvc2VuRXhjbHVkZUl0ZW0pKQogIH0KCiAgIyByZXR1cm4gY2xlYW5lZCBkYXRhc2V0CiAgcmV0dXJuKGRfY2xlYW4pCn0KCiMgbWFrZSBmdW5jdGlvbiBmb3IgZXhhbWluaW5nIGV4Y2x1c2lvbiBvZiBwYXJ0aWNpcGFudHMKZXhjbHVkZWRDb3VudHMgPC0gZnVuY3Rpb24oZGF0YXNvdXJjZSkgewogIAogICMgc2V0IGRhdGFzb3VyY2UKICBpZihkYXRhc291cmNlID09ICJzdHVkeSAxIil7CiAgICBkIDwtIGQxCiAgICBkX3JhdyA8LSBkX3Jhd19zdHVkeTEKICB9CiAgaWYoZGF0YXNvdXJjZSA9PSAic3R1ZHkgMiIpewogICAgZCA8LSBkMgogICAgZF9yYXcgPC0gZF9yYXdfc3R1ZHkyCiAgfQogIGlmKGRhdGFzb3VyY2UgPT0gInN0dWR5IDMiKXsKICAgIGQgPC0gZDMKICAgIGRfcmF3IDwtIGRfcmF3X3N0dWR5MwogIH0KICBpZihkYXRhc291cmNlID09ICJzdHVkeSA0Iil7CiAgICBkIDwtIGQ0CiAgICBkX3JhdyA8LSBkX3Jhd19zdHVkeTQKICB9CiAgCiAgIyBnZXQgc3ViaWRzIG9mIHN1Y2Nlc3NmdWwgcGFydGljaXBhbnRzCiAgZF9zdWJpZHMgPC0gbGV2ZWxzKGZhY3Rvcihhcy5jaGFyYWN0ZXIoZCRzdWJpZCkpKQogIAogICMgZ2V0IHN1YmlkcyBvZiBleGNsdWRlZCBwYXJ0aWNpcGFudHMKICBkX2V4Y2x1ZGVkIDwtIGRfcmF3ICU+JQogICAgZmlsdGVyKGlzLmVsZW1lbnQoc3ViaWQsIGRfc3ViaWRzKSA9PSBGQUxTRSkgJT4lCiAgICBkcGx5cjo6c2VsZWN0KGNvbmRpdGlvbiwgc3ViaWQsIGZpbmlzaGVkLCBzdGFydHNfd2l0aCgiQ0FUQ0giKSwgeW9iKQoKICAjIGNvdW50IGV4Y2x1ZGVkIHBhcnRpY2lwYW50cwogIGRfZXhjbHVkZWRfbiA8LSBsZW5ndGgoZF9leGNsdWRlZCRzdWJpZCkKICAKICBpZihkYXRhc291cmNlICVpbiUgYygic3R1ZHkgMSIsICJzdHVkeSAyIiwgInN0dWR5IDQiKSkgewogICAgIyBjb3VudCBwYXJ0aWNpcGFudHMgd2hvIGRpZCBub3QgZmluaXNoCiAgICBkX2V4Y2x1ZGVkX3VuZmluaXNoZWQgPC0gZF9leGNsdWRlZCAlPiUKICAgICAgZmlsdGVyKGlzLm5hKENBVENIKSA9PSBULAogICAgICAgICAgICAgZmluaXNoZWQgIT0gMSkgJT4lCiAgICAgIGRwbHlyOjpzZWxlY3Qoc3ViaWQpICU+JQogICAgICBjKCkKICAgIAogICAgIyBjb3VudCBwYXJ0aWNpcGFudHMgd2hvIGZpbmlzaGVkLCBidXQgZmFpbGVkIGNhdGNoIHRyaWFsCiAgICBkX2V4Y2x1ZGVkX0NBVENIIDwtIGRfZXhjbHVkZWQgJT4lCiAgICAgIGZpbHRlcihpcy5lbGVtZW50KHN1YmlkLCBkX2V4Y2x1ZGVkX3VuZmluaXNoZWQkc3ViaWQpID09IEZBTFNFKSAlPiUKICAgICAgZmlsdGVyKENBVENIICE9IDEpICU+JQogICAgICBkcGx5cjo6c2VsZWN0KHN1YmlkKSAlPiUKICAgICAgYygpCiAgfQogIAogIGlmKGRhdGFzb3VyY2UgPT0gInN0dWR5IDMiKSB7CiAgICAjIGNvdW50IHBhcnRpY2lwYW50cyB3aG8gZGlkIG5vdCBmaW5pc2gKICAgIGRfZXhjbHVkZWRfdW5maW5pc2hlZCA8LSBkX2V4Y2x1ZGVkICU+JQogICAgICBmaWx0ZXIoaXMubmEoQ0FUQ0guLmNoYXJhY3RlckwpID09IFQsCiAgICAgICAgICAgICBpcy5uYShDQVRDSC4uY2hhcmFjdGVyUikgPT0gVCwKICAgICAgICAgICAgIGZpbmlzaGVkICE9IDEpICU+JQogICAgICBkcGx5cjo6c2VsZWN0KHN1YmlkKSAlPiUKICAgICAgYygpCiAgICAKICAgICMgY291bnQgcGFydGljaXBhbnRzIHdobyBmaW5pc2hlZCwgYnV0IGZhaWxlZCBjYXRjaCB0cmlhbAogICAgZF9leGNsdWRlZF9DQVRDSCA8LSBkX2V4Y2x1ZGVkICU+JQogICAgICBmaWx0ZXIoaXMuZWxlbWVudChzdWJpZCwgZF9leGNsdWRlZF91bmZpbmlzaGVkJHN1YmlkKSA9PSBGQUxTRSkgJT4lCiAgICAgIGZpbHRlcihDQVRDSC4uY2hhcmFjdGVyTCAhPSA1IHwgQ0FUQ0guLmNoYXJhY3RlclIgIT0gNSkgJT4lCiAgICAgIGRwbHlyOjpzZWxlY3Qoc3ViaWQpICU+JQogICAgICBjKCkKICB9CiAgCiAgIyBjb3VudCBwYXJ0aWNpcGFudHMgd2hvIGZpbmlzaGVkIGFuZCBwYXNzZWQgY2F0Y2ggdHJpYWwsIAogICMgYnV0IGRpZCBub3QgcHJvdmlkZSB5ZWFyIG9mIGJpcnRoCiAgZF9leGNsdWRlZF9ub195b2IgPC0gZF9leGNsdWRlZCAlPiUKICAgIGZpbHRlcihpcy5lbGVtZW50KHN1YmlkLCBkX2V4Y2x1ZGVkX3VuZmluaXNoZWQkc3ViaWQpID09IEZBTFNFLAogICAgICAgICAgIGlzLmVsZW1lbnQoc3ViaWQsIGRfZXhjbHVkZWRfQ0FUQ0gkc3ViaWQpID09IEZBTFNFKSAlPiUKICAgIG11dGF0ZSh5b2IgPSBhcy5udW1lcmljKGFzLmNoYXJhY3Rlcih5b2IpKSkgJT4lCiAgICBmaWx0ZXIoaXMubmEoeW9iKSB8IHlvYiA8IDE4OTkgfCBuY2hhcihhcy5jaGFyYWN0ZXIoeW9iKSkgIT0gNCkgJT4lCiAgICBkcGx5cjo6c2VsZWN0KHN1YmlkKSAlPiUKICAgIGMoKQogIAogICMgY291bnQgcGFydGljaXBhbnRzIHdobyBmaW5pc2hlZCBhbmQgcGFzc2VkIGNhdGNoIHRyaWFsLCAKICAjIGJ1dCBkaWQgbm90IHByb3ZpZGUgeWVhciBvZiBiaXJ0aAogIGRfZXhjbHVkZWRfeW91bmcgPC0gZF9leGNsdWRlZCAlPiUKICAgIGZpbHRlcihpcy5lbGVtZW50KHN1YmlkLCBkX2V4Y2x1ZGVkX3VuZmluaXNoZWQkc3ViaWQpID09IEZBTFNFLAogICAgICAgICAgIGlzLmVsZW1lbnQoc3ViaWQsIGRfZXhjbHVkZWRfQ0FUQ0gkc3ViaWQpID09IEZBTFNFLAogICAgICAgICAgIGlzLmVsZW1lbnQoc3ViaWQsIGRfZXhjbHVkZWRfbm9feW9iJHN1YmlkKSA9PSBGQUxTRSkgJT4lCiAgICBtdXRhdGUoeW9iID0gYXMubnVtZXJpYyhhcy5jaGFyYWN0ZXIoeW9iKSkpICU+JQogICAgZmlsdGVyKGlzLm5hKHlvYikgfCAyMDE2IC0geW9iIDwgMTgpICU+JQogICAgZHBseXI6OnNlbGVjdChzdWJpZCkgJT4lCiAgICBjKCkKICAKICAjIHN1bSB1cCBleGNsdWRlZCBwYXJ0aWNpcGFudHMgYnkgY2F0ZWdvcnkKICB0b3RhbCA8LSBzdW0obGVuZ3RoKGRfZXhjbHVkZWRfdW5maW5pc2hlZCRzdWJpZCksCiAgICAgICAgICAgICAgIGxlbmd0aChkX2V4Y2x1ZGVkX0NBVENIJHN1YmlkKSwKICAgICAgICAgICAgICAgbGVuZ3RoKGRfZXhjbHVkZWRfbm9feW9iJHN1YmlkKSwKICAgICAgICAgICAgICAgbGVuZ3RoKGRfZXhjbHVkZWRfeW91bmckc3ViaWQpKQogIAogICMgY2FsY3VsYXRlIGNvdW50cwogIGV4Y2x1ZGVkX2NvdW50cyA8LSAKICAgIGRhdGEuZnJhbWUoImRpZF9ub3RfZmluaXNoIiA9IGxlbmd0aChkX2V4Y2x1ZGVkX3VuZmluaXNoZWQkc3ViaWQpLAogICAgICAgICAgICAgICAiZmFpbGVkX2NhdGNoX3RyaWFsIiA9IGxlbmd0aChkX2V4Y2x1ZGVkX0NBVENIJHN1YmlkKSwKICAgICAgICAgICAgICAgImRpZF9ub3RfcHJvdmlkZV95b2IiID0gbGVuZ3RoKGRfZXhjbHVkZWRfbm9feW9iJHN1YmlkKSwKICAgICAgICAgICAgICAgInRvb195b3VuZyIgPSBsZW5ndGgoZF9leGNsdWRlZF95b3VuZyRzdWJpZCksCiAgICAgICAgICAgICAgICJUT1RBTF9leGNsdWRlZCIgPSB0b3RhbCwKICAgICAgICAgICAgICAgIlRPVEFMX3BhcnRpY2lwYXRlZCIgPSBsZW5ndGgoZCRzdWJpZCksCiAgICAgICAgICAgICAgICJPVkVSQUxMX1RPVEFMIiA9IHN1bSh0b3RhbCwgbGVuZ3RoKGQkc3ViaWQpKSkKICAKICBpZih0b3RhbCAhPSBkX2V4Y2x1ZGVkX24pIHsKICAgIHN0b3AoIkVycm9yOiA0IHNvdXJjZXMgb2YgZXhjbHVzaW9uIGRvIG5vdCBhZGQgdXAgdG8gdG90YWwuIikKICAgIH0gZWxzZSB7CiAgICAgIHJldHVybihleGNsdWRlZF9jb3VudHMpCiAgICB9Cn0KCiMgbWFrZSBmdW5jdGlvbiBmb3Igc3RyaXBwaW5nIGRhdGFmcmFtZXMgZm9yIGRpbWVuc2lvbiByZWR1Y2F0aW9uCm1ha2VEUkRGIDwtIGZ1bmN0aW9uKGRhdGFzb3VyY2UsIGNob3NlbkNvbmRpdGlvbikgewogIAogICMgc2V0IHRhcmdldCBkYXRhc2V0CiAgaWYoZGF0YXNvdXJjZSA9PSAic3R1ZHkgMSIpe2QgPC0gZDF9CiAgaWYoZGF0YXNvdXJjZSA9PSAic3R1ZHkgMiIpe2QgPC0gZDJ9CiAgaWYoZGF0YXNvdXJjZSA9PSAic3R1ZHkgMyIpewogICAgIyByZW5hbWUgdmFyaWFibGVzIGZvciBlYXNlIG9mIGZ1bmN0aW9uIGFwcGxwaWNhdGlvbgogICAgZCA8LSBkMyAlPiUKICAgICAgcmVuYW1lKG9yZGVyID0gY29uZGl0aW9uLAogICAgICAgICAgICAgY29uZGl0aW9uID0gdGFyZ2V0KQogICAgCiAgICAjIHJlbmFtZSBzdWJpZHMgYnkgY29uZGl0aW9uIGlmIGNvbGxhcHNlcyBhY3Jvc3MgY29uZGl0aW9ucwogICAgZCA8LSBkICU+JQogICAgICBtdXRhdGUoc3ViaWQgPSBwYXN0ZShjb25kaXRpb24sIHN1YmlkLCBzZXAgPSAiXyIpKQogIH0KICBpZihkYXRhc291cmNlID09ICJzdHVkeSA0Iil7ZCA8LSBkNH0KICAKICAjIGZpbHRlciBieSBjb25kaXRpb24gaWYgc3BlY2lmaWVkCiAgaWYoY2hvc2VuQ29uZGl0aW9uICVpbiUgYygiYmVldGxlIiwgInJvYm90IikpIHsKICAgIGQgPC0gZCAlPiUgZmlsdGVyKGNvbmRpdGlvbiA9PSBjaG9zZW5Db25kaXRpb24pCiAgfQogIAogICMgbWFrZSBzdHJpcHBlZCBkYXRhZnJhbWUgZm9yIGRpbWVuc2lvbiByZWR1Y2F0aW9uIGFuYWx5c2VzCiAgZF9zdHJpcCA8LSBkICU+JQogICAgZHBseXI6OnNlbGVjdChzdWJpZCwgaGFwcHk6cHJpZGUpCiAgZF9zdHJpcCA8LSBkYXRhLmZyYW1lKGRfc3RyaXBbLC0xXSwgcm93Lm5hbWVzID0gZF9zdHJpcCRzdWJpZCkKICAKICAjIHJldHVybiBzdHJpcHBlZCBkYXRhZnJhbWUKICByZXR1cm4oZF9zdHJpcCkKfQoKIyBtYWtlIGRlbW9ncmFwaGljcyBmdW5jdGlvbnMKZGVtb1NhbXBsZVNpemUgPC0gZnVuY3Rpb24oZGF0YXNvdXJjZSkgewoKICAjIHNldCB0YXJnZXQgZGF0YXNldAogIGlmKGRhdGFzb3VyY2UgPT0gInN0dWR5IDEiKXtkIDwtIGQxfQogIGlmKGRhdGFzb3VyY2UgPT0gInN0dWR5IDIiKXtkIDwtIGQyfQogIGlmKGRhdGFzb3VyY2UgPT0gInN0dWR5IDMiKXsKICAgICMgcmVuYW1lIHZhcmlhYmxlcyBmb3IgZWFzZSBvZiBmdW5jdGlvbiBhcHBscGljYXRpb24KICAgIGQgPC0gZDMgJT4lCiAgICAgIHJlbmFtZShvcmRlciA9IGNvbmRpdGlvbiwKICAgICAgICAgICAgIGNvbmRpdGlvbiA9IHRhcmdldCkKICB9CiAgaWYoZGF0YXNvdXJjZSA9PSAic3R1ZHkgNCIpe2QgPC0gZDR9CgogICMgZ2V0IHNhbXBsZSBzaXplIHBlciBjb25kaXRpb24KICBzYW1wbGVfc2l6ZSA8LSB2ZWN0b3IoKQogIGZvcihpIGluIGxldmVscyhkJGNvbmRpdGlvbikpIHsKICAgIHNhbXBsZV9zaXplW2FzLmNoYXJhY3RlcihpKV0gPC0gCiAgICAgIGFzLm51bWVyaWMoZCAlPiUgZmlsdGVyKGNvbmRpdGlvbiA9PSBpKSAlPiUgZHBseXI6OnNlbGVjdChzdWJpZCkgJT4lIAogICAgICAgICAgICAgICAgICAgdW5pcXVlKCkgJT4lIGNvdW50KCkpCiAgfQoKICAjIGFkZCB0b3RhbCBzYW1wbGUgc2l6ZSAgCiAgc2FtcGxlX3NpemVbImFsbCJdIDwtIGFzLm51bWVyaWMoZCAlPiUgZHBseXI6OnNlbGVjdChzdWJpZCkgJT4lIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5pcXVlKCkgJT4lIGNvdW50KCkpCiAgCiAgIyBtYWtlIGludG8gZGF0YWZyYW1lIGZvciB1c2luZyBrYWJsZQogIHNhbXBsZV9zaXplIDwtIGRhdGEuZnJhbWUoc2FtcGxlX3NpemUpICU+JQogICAgcm93bmFtZXNfdG9fY29sdW1uKCkgJT4lCiAgICByZW5hbWUoY29uZGl0aW9uID0gcm93bmFtZSwKICAgICAgICAgICBuID0gc2FtcGxlX3NpemUpCiAgCiAgIyByZXR1cm4gZGF0YWZyYW1lIGZvciB1c2luZyBrYWJsZQogIHJldHVybihzYW1wbGVfc2l6ZSkKfQpkZW1vRHVyYXRpb24gPC0gZnVuY3Rpb24oZGF0YXNvdXJjZSkgewoKICAjIHNldCB0YXJnZXQgZGF0YXNldAogIGlmKGRhdGFzb3VyY2UgPT0gInN0dWR5IDEiKXtkIDwtIGQxfQogIGlmKGRhdGFzb3VyY2UgPT0gInN0dWR5IDIiKXtkIDwtIGQyfQogIGlmKGRhdGFzb3VyY2UgPT0gInN0dWR5IDMiKXsKICAgICMgcmVjb2RlIHZhcmlhYmxlcyBmb3IgZWFzZSBvZiBmdW5jdGlvbiBhcHBscGljYXRpb24KICAgIGQgPC0gZDMgJT4lCiAgICAgIG11dGF0ZShjb25kaXRpb24gPSAid2l0aGluLXN1YmplY3RzIikKICB9CiAgaWYoZGF0YXNvdXJjZSA9PSAic3R1ZHkgNCIpe2QgPC0gZDR9CgogICMgZ2V0IHNhbXBsZSBzaXplIHBlciBjb25kaXRpb24KICBkdXJhdGlvbiA8LSBkICU+JQogICAgZ3JvdXBfYnkoY29uZGl0aW9uKSAlPiUKICAgIHN1bW1hcmlzZShtaW5fZHVyYXRpb24gPSBtaW4oZHVyYXRpb24pLAogICAgICAgICAgICAgIG1heF9kdXJhdGlvbiA9IG1heChkdXJhdGlvbiksCiAgICAgICAgICAgICAgbWVkaWFuX2R1cmF0aW9uID0gbWVkaWFuKGR1cmF0aW9uKSwKICAgICAgICAgICAgICBtZWFuX2R1cmF0aW9uID0gbWVhbihkdXJhdGlvbiksCiAgICAgICAgICAgICAgc2RfZHVyYXRpb24gPSBzZChkdXJhdGlvbikpCgogICMgYWRkIHRvdGFsIGR1cmF0aW9uCiAgaWYoZGF0YXNvdXJjZSAlaW4lIGMoInN0dWR5IDEiLCAic3R1ZHkgMiIsICJzdHVkeSA0IikpIHsKICAgIGFsbCA8LSBkICU+JQogICAgICBzdW1tYXJpc2UobWluX2R1cmF0aW9uID0gbWluKGR1cmF0aW9uKSwKICAgICAgICAgICAgICAgIG1heF9kdXJhdGlvbiA9IG1heChkdXJhdGlvbiksCiAgICAgICAgICAgICAgICBtZWRpYW5fZHVyYXRpb24gPSBtZWRpYW4oZHVyYXRpb24pLAogICAgICAgICAgICAgICAgbWVhbl9kdXJhdGlvbiA9IG1lYW4oZHVyYXRpb24pLAogICAgICAgICAgICAgICAgc2RfZHVyYXRpb24gPSBzZChkdXJhdGlvbikpICU+JQogICAgICBtdXRhdGUoY29uZGl0aW9uID0gImFsbCIpCiAgICBkdXJhdGlvbiA8LSByYmluZChkdXJhdGlvbiwgYWxsKSAjIG5vdCBzdXJlIHdoeSBmdWxsX2pvaW4gZG9lc24ndCB3b3JrICAgIAogIH0KCiAgIyByZXR1cm4gZGF0YWZyYW1lIGZvciB1c2luZyBrYWJsZQogIHJldHVybihkdXJhdGlvbikKfQpkZW1vQWdlIDwtIGZ1bmN0aW9uKGRhdGFzb3VyY2UpIHsKCiAgIyBzZXQgdGFyZ2V0IGRhdGFzZXQKICBpZihkYXRhc291cmNlID09ICJzdHVkeSAxIil7ZCA8LSBkMX0KICBpZihkYXRhc291cmNlID09ICJzdHVkeSAyIil7ZCA8LSBkMn0KICBpZihkYXRhc291cmNlID09ICJzdHVkeSAzIil7CiAgICAjIHJlY29kZSB2YXJpYWJsZXMgZm9yIGVhc2Ugb2YgZnVuY3Rpb24gYXBwbHBpY2F0aW9uCiAgICBkIDwtIGQzICU+JQogICAgICBtdXRhdGUoY29uZGl0aW9uID0gIndpdGhpbi1zdWJqZWN0cyIpCiAgfQogIGlmKGRhdGFzb3VyY2UgPT0gInN0dWR5IDQiKXtkIDwtIGQ0fQoKICAjIGdldCBzYW1wbGUgc2l6ZSBwZXIgY29uZGl0aW9uCiAgYWdlIDwtIGQgJT4lCiAgICBncm91cF9ieShjb25kaXRpb24pICU+JQogICAgc3VtbWFyaXNlKG1pbl9hZ2UgPSBtaW4oYWdlX2FwcHJveCksCiAgICAgICAgICAgICAgbWF4X2FnZSA9IG1heChhZ2VfYXBwcm94KSwKICAgICAgICAgICAgICBtZWRpYW5fYWdlID0gbWVkaWFuKGFnZV9hcHByb3gpLAogICAgICAgICAgICAgIG1lYW5fYWdlID0gbWVhbihhZ2VfYXBwcm94KSwKICAgICAgICAgICAgICBzZF9hZ2UgPSBzZChhZ2VfYXBwcm94KSkKCiAgIyBhZGQgdG90YWwgYWdlCiAgaWYoZGF0YXNvdXJjZSAlaW4lIGMoInN0dWR5IDEiLCAic3R1ZHkgMiIsICJzdHVkeSA0IikpIHsKICAgIGFsbCA8LSBkICU+JQogICAgICBzdW1tYXJpc2UobWluX2FnZSA9IG1pbihhZ2VfYXBwcm94KSwKICAgICAgICAgICAgICAgIG1heF9hZ2UgPSBtYXgoYWdlX2FwcHJveCksCiAgICAgICAgICAgICAgICBtZWRpYW5fYWdlID0gbWVkaWFuKGFnZV9hcHByb3gpLAogICAgICAgICAgICAgICAgbWVhbl9hZ2UgPSBtZWFuKGFnZV9hcHByb3gpLAogICAgICAgICAgICAgICAgc2RfYWdlID0gc2QoYWdlX2FwcHJveCkpICU+JQogICAgICBtdXRhdGUoY29uZGl0aW9uID0gImFsbCIpCiAgICBhZ2UgPC0gZnVsbF9qb2luKGFnZSwgYWxsKQogIH0KCiAgIyByZXR1cm4gZGF0YWZyYW1lIGZvciB1c2luZyBrYWJsZQogIHJldHVybihhZ2UpCn0KZGVtb0dlbmRlciA8LSBmdW5jdGlvbihkYXRhc291cmNlKSB7CgogICMgc2V0IHRhcmdldCBkYXRhc2V0CiAgaWYoZGF0YXNvdXJjZSA9PSAic3R1ZHkgMSIpe2QgPC0gZDF9CiAgaWYoZGF0YXNvdXJjZSA9PSAic3R1ZHkgMiIpe2QgPC0gZDJ9CiAgaWYoZGF0YXNvdXJjZSA9PSAic3R1ZHkgMyIpe2QgPC0gZDN9CiAgaWYoZGF0YXNvdXJjZSA9PSAic3R1ZHkgNCIpe2QgPC0gZDR9CgogICMgZ2V0IGdlbmRlciBwZXIgY29uZGl0aW9uIGFuZCBvdmVyYWxsCiAgaWYoZGF0YXNvdXJjZSAlaW4lIGMoInN0dWR5IDEiLCAic3R1ZHkgMiIsICJzdHVkeSA0IikpIHsKICAgIGdlbmRlciA8LSBkYXRhLmZyYW1lKGFkZG1hcmdpbnMod2l0aChkLCB0YWJsZShjb25kaXRpb24sIGdlbmRlcikpKSkgJT4lCiAgICAgIGZpbHRlcihnZW5kZXIgIT0gIlN1bSIpICU+JQogICAgICByZW5hbWUobiA9IEZyZXEpCiAgfQogIAogIGlmKGRhdGFzb3VyY2UgPT0gInN0dWR5IDMiKSB7CiAgICBnZW5kZXIgPC0gZGF0YS5mcmFtZSh3aXRoKGQsIHRhYmxlKGdlbmRlcikpKSAlPiUKICAgICAgcmVuYW1lKG4gPSBGcmVxKSAlPiUKICAgICAgbXV0YXRlKGNvbmRpdGlvbiA9ICJTdW0iKSAlPiUKICAgICAgZHBseXI6OnNlbGVjdChjb25kaXRpb24sIGdlbmRlciwgbikKICB9CiAgCiAgaWYoZGF0YXNvdXJjZSAlaW4lIGMoInN0dWR5IDEiLCAic3R1ZHkgMiIsICJzdHVkeSAzIikpIHsKICAgIGdlbmRlciA8LSBnZW5kZXIgJT4lCiAgICBtdXRhdGUoY29uZGl0aW9uID0gZmFjdG9yKGlmZWxzZShjb25kaXRpb24gPT0gIlN1bSIsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImFsbCIsIGFzLmNoYXJhY3Rlcihjb25kaXRpb24pKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV2ZWxzID0gYygiYmVldGxlIiwgInJvYm90IiwgImFsbCIpKSkgJT4lCiAgICBhcnJhbmdlKGNvbmRpdGlvbiwgZ2VuZGVyKSAlPiUKICAgIHNwcmVhZChnZW5kZXIsIG4pCiAgfQogIAogIGlmKGRhdGFzb3VyY2UgPT0gInN0dWR5IDQiKSB7CiAgICBnZW5kZXIgPC0gZ2VuZGVyICU+JQogICAgbXV0YXRlKGNvbmRpdGlvbiA9IGZhY3RvcihpZmVsc2UoY29uZGl0aW9uID09ICJTdW0iLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJhbGwiLCBhcy5jaGFyYWN0ZXIoY29uZGl0aW9uKSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldmVscyA9IGMobGV2ZWxzKGQkY29uZGl0aW9uKSwgImFsbCIpKSkgJT4lCiAgICBhcnJhbmdlKGNvbmRpdGlvbiwgZ2VuZGVyKSAlPiUKICAgIHNwcmVhZChnZW5kZXIsIG4pCiAgfQogIAogICMgcmV0dXJuIGRhdGFmcmFtZSBmb3IgdXNpbmcga2FibGUKICByZXR1cm4oZ2VuZGVyKQp9CmRlbW9SYWNlIDwtIGZ1bmN0aW9uKGRhdGFzb3VyY2UpIHsKCiAgIyBzZXQgdGFyZ2V0IGRhdGFzZXQKICBpZihkYXRhc291cmNlID09ICJzdHVkeSAxIil7ZCA8LSBkMX0KICBpZihkYXRhc291cmNlID09ICJzdHVkeSAyIil7ZCA8LSBkMn0KICBpZihkYXRhc291cmNlID09ICJzdHVkeSAzIil7ZCA8LSBkM30KICBpZihkYXRhc291cmNlID09ICJzdHVkeSA0Iil7ZCA8LSBkNH0KCiAgIyBnZXQgcmFjZSBwZXIgY29uZGl0aW9uIGFuZCBvdmVyYWxsCiAgaWYoZGF0YXNvdXJjZSAlaW4lIGMoInN0dWR5IDEiLCAic3R1ZHkgMiIsICJzdHVkeSA0IikpIHsKICAgIHJhY2UgPC0gZGF0YS5mcmFtZShhZGRtYXJnaW5zKHdpdGgoZCwgdGFibGUoY29uZGl0aW9uLCByYWNlX2NhdCkpKSkgJT4lCiAgICAgIGZpbHRlcihyYWNlX2NhdCAhPSAiU3VtIikgJT4lCiAgICAgIHJlbmFtZShuID0gRnJlcSkKICB9CiAgCiAgaWYoZGF0YXNvdXJjZSA9PSAic3R1ZHkgMyIpIHsKICAgIHJhY2UgPC0gZGF0YS5mcmFtZSh3aXRoKGQsIHRhYmxlKHJhY2VfY2F0KSkpICU+JQogICAgICByZW5hbWUobiA9IEZyZXEpICU+JQogICAgICBtdXRhdGUoY29uZGl0aW9uID0gIlN1bSIpICU+JQogICAgICBkcGx5cjo6c2VsZWN0KGNvbmRpdGlvbiwgcmFjZV9jYXQsIG4pCiAgfQogIAogIGlmKGRhdGFzb3VyY2UgJWluJSBjKCJzdHVkeSAxIiwgInN0dWR5IDIiLCAic3R1ZHkgMyIpKSB7CiAgICByYWNlIDwtIHJhY2UgJT4lCiAgICBtdXRhdGUoY29uZGl0aW9uID0gZmFjdG9yKGlmZWxzZShjb25kaXRpb24gPT0gIlN1bSIsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImFsbCIsIGFzLmNoYXJhY3Rlcihjb25kaXRpb24pKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV2ZWxzID0gYygiYmVldGxlIiwgInJvYm90IiwgImFsbCIpKSkgJT4lCiAgICBhcnJhbmdlKGNvbmRpdGlvbiwgcmFjZV9jYXQpICU+JQogICAgc3ByZWFkKHJhY2VfY2F0LCBuKQogIH0KICAKICBpZihkYXRhc291cmNlID09ICJzdHVkeSA0IikgewogICAgcmFjZSA8LSByYWNlICU+JQogICAgbXV0YXRlKGNvbmRpdGlvbiA9IGZhY3RvcihpZmVsc2UoY29uZGl0aW9uID09ICJTdW0iLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJhbGwiLCBhcy5jaGFyYWN0ZXIoY29uZGl0aW9uKSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldmVscyA9IGMobGV2ZWxzKGQkY29uZGl0aW9uKSwgImFsbCIpKSkgJT4lCiAgICBhcnJhbmdlKGNvbmRpdGlvbiwgcmFjZV9jYXQpICU+JQogICAgc3ByZWFkKHJhY2VfY2F0LCBuKQogIH0KICAKICAjIHJldHVybiBkYXRhZnJhbWUgZm9yIHVzaW5nIGthYmxlCiAgcmV0dXJuKHJhY2UpCn0KZGVtb1JlbGlnaW9uIDwtIGZ1bmN0aW9uKGRhdGFzb3VyY2UpIHsKCiAgIyBzZXQgdGFyZ2V0IGRhdGFzZXQKICBpZihkYXRhc291cmNlID09ICJzdHVkeSAxIil7ZCA8LSBkMX0KICBpZihkYXRhc291cmNlID09ICJzdHVkeSAyIil7ZCA8LSBkMn0KICBpZihkYXRhc291cmNlID09ICJzdHVkeSAzIil7ZCA8LSBkM30KCiAgIyBnZXQgcmVsaWdpb24gcGVyIGNvbmRpdGlvbiBhbmQgb3ZlcmFsbAogIGlmKGRhdGFzb3VyY2UgJWluJSBjKCJzdHVkeSAxIiwgInN0dWR5IDIiKSkgewogICAgcmVsaWdpb24gPC0gZGF0YS5mcmFtZShhZGRtYXJnaW5zKHdpdGgoZCwgdGFibGUoY29uZGl0aW9uLCByZWxpZ2lvbl9jYXQpKSkpICU+JQogICAgICBmaWx0ZXIocmVsaWdpb25fY2F0ICE9ICJTdW0iKSAlPiUKICAgICAgcmVuYW1lKG4gPSBGcmVxKQogIH0KICAKICBpZihkYXRhc291cmNlID09ICJzdHVkeSAzIikgewogICAgcmVsaWdpb24gPC0gZGF0YS5mcmFtZSh3aXRoKGQsIHRhYmxlKHJlbGlnaW9uX2NhdCkpKSAlPiUKICAgICAgcmVuYW1lKG4gPSBGcmVxKSAlPiUKICAgICAgbXV0YXRlKGNvbmRpdGlvbiA9ICJTdW0iKSAlPiUKICAgICAgZHBseXI6OnNlbGVjdChjb25kaXRpb24sIHJlbGlnaW9uX2NhdCwgbikKICB9CiAgCiAgaWYoZGF0YXNvdXJjZSAlaW4lIGMoInN0dWR5IDEiLCAic3R1ZHkgMiIsICJzdHVkeSAzIikpIHsKICAgIHJlbGlnaW9uIDwtIHJlbGlnaW9uICU+JQogICAgbXV0YXRlKGNvbmRpdGlvbiA9IGZhY3RvcihpZmVsc2UoY29uZGl0aW9uID09ICJTdW0iLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJhbGwiLCBhcy5jaGFyYWN0ZXIoY29uZGl0aW9uKSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldmVscyA9IGMoImJlZXRsZSIsICJyb2JvdCIsICJhbGwiKSkpICU+JQogICAgYXJyYW5nZShjb25kaXRpb24sIHJlbGlnaW9uX2NhdCkgJT4lCiAgICBzcHJlYWQocmVsaWdpb25fY2F0LCBuKQogIH0KICAKICAjIHJldHVybiBkYXRhZnJhbWUgZm9yIHVzaW5nIGthYmxlCiAgaWYoZGF0YXNvdXJjZSA9PSAic3R1ZHkgNCIpewogICAgc3RvcCgiUmVsaWdpb24gaW5mb3JtYXRpb24gbm90IGF2YWlsYWJsZSBmb3IgU3R1ZHkgNCIpCiAgfSBlbHNlIHtyZXR1cm4ocmVsaWdpb24pfQp9CmRlbW9FZHVjYXRpb24gPC0gZnVuY3Rpb24oZGF0YXNvdXJjZSkgewoKICAjIHNldCB0YXJnZXQgZGF0YXNldAogIGlmKGRhdGFzb3VyY2UgPT0gInN0dWR5IDQiKXtkIDwtIGQ0fQogIAogICMgZ2V0IGVkdWNhdGlvbiBwZXIgY29uZGl0aW9uIGFuZCBvdmVyYWxsCiAgaWYoZGF0YXNvdXJjZSA9PSAic3R1ZHkgNCIpIHsKICAgIGVkdWNhdGlvbiA8LSAKICAgICAgZGF0YS5mcmFtZShhZGRtYXJnaW5zKHdpdGgoZCwgdGFibGUoY29uZGl0aW9uLCBlZHVjYXRpb24pKSkpICU+JQogICAgICBmaWx0ZXIoZWR1Y2F0aW9uICE9ICJTdW0iKSAlPiUKICAgICAgcmVuYW1lKG4gPSBGcmVxKSAlPiUKICAgICAgbXV0YXRlKGNvbmRpdGlvbiA9IGZhY3RvcihpZmVsc2UoY29uZGl0aW9uID09ICJTdW0iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYWxsIiwgYXMuY2hhcmFjdGVyKGNvbmRpdGlvbikpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldmVscyA9IGMobGV2ZWxzKGQkY29uZGl0aW9uKSwgImFsbCIpKSwKICAgICAgICAgICAgIGVkdWNhdGlvbiA9IGZhY3RvcihlZHVjYXRpb24sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV2ZWxzID0gYygxOjcsIDApLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVscyA9IGMoInNvbWVfSFMiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkhTX2RpcGxvbWEiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInNvbWVfY29sbGVnZSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYXNzb2NpYXRlcyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYmFjaGVsb3JzIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzb21lX2dyYWQiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImdyYWQiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInByZWZfbm8iKSkpICU+JQogICAgICBhcnJhbmdlKGNvbmRpdGlvbiwgZWR1Y2F0aW9uKSAlPiUKICAgICAgc3ByZWFkKGVkdWNhdGlvbiwgbikKICB9CiAgCiAgIyByZXR1cm4gZGF0YWZyYW1lIGZvciB1c2luZyBrYWJsZQogIGlmKGRhdGFzb3VyY2UgJWluJSBjKCJzdHVkeSAxIiwgInN0dWR5IDIiLCAic3R1ZHkgMyIpKXsKICAgIHN0b3AoIkVkdWNhdGlvbiBpbmZvcm1hdGlvbiBub3QgYXZhaWxhYmxlIGZvciBTdHVkaWVzIDEtMyIpCiAgfSBlbHNlIHtyZXR1cm4oZWR1Y2F0aW9uKX0KfQoKIyBwbG90dGluZyBmdW5jdGlvbnMKbWFrZUZhY2V0TGFicyA8LSBmdW5jdGlvbihkZl9wbG90dGluZykgewogIGZhY2V0X2xhYmVscyA8LSBhcnJheSgpCiAgZGZfcGxvdHRpbmcgPC0gZGZfcGxvdHRpbmcgJT4lIG11dGF0ZShjb25kaXRpb24gPSBmYWN0b3IoY29uZGl0aW9uKSkKICBmb3IoaSBpbiAxOmxlbmd0aChsZXZlbHMoZGZfcGxvdHRpbmckY29uZGl0aW9uKSkpIHsKICAgIGRmIDwtIGRmX3Bsb3R0aW5nICU+JSBmaWx0ZXIoY29uZGl0aW9uID09IGxldmVscyhkZl9wbG90dGluZyRjb25kaXRpb24pW2ldKSAlPiUKICAgICAgc2VsZWN0KGNvbmRpdGlvbiwgbikgJT4lIHVuaXF1ZSgpCiAgICBmYWNldF9sYWJlbHNbaV0gPC0gcGFzdGUwKGRmJGNvbmRpdGlvbiwgIiAobiA9ICIsIGRmJG4sICIpIikKICB9CiAgbmFtZXMoZmFjZXRfbGFiZWxzKSA8LSBsZXZlbHMoZGZfcGxvdHRpbmckY29uZGl0aW9uKQogIHJldHVybihmYWNldF9sYWJlbHMpCn0KYGBgCgpgYGB7ciBtb2RlbGluZyBkZWNpc2lvbnN9CiMgcmVtb3ZlIG91dGxpZXJzPwpjaG9zZW5PdXRsaWVySGFuZGxpbmcgPC0gImtlZXAiCiMgY2hvc2VuT3V0bGllckhhbmRsaW5nIDwtICJyZW1vdmUiCgojIGV4Y2x1ZGUgYW55IGNvbmRpdGlvbnMgaW4gc3R1ZHkgND8KY2hvc2VuRXhjbHVkZSA8LSAibm9uZSIKIyBjaG9zZW5FeGNsdWRlIDwtIGMoInN0YXBsZXIiLCAiY2FyIiwgImNvbXB1dGVyIikKCiMgZXhjbHVkZSBhbnkgaXRlbXM/CmNob3NlbkV4Y2x1ZGVJdGVtIDwtICJub25lIgojIGNob3NlbkV4Y2x1ZGVJdGVtIDwtICJjb21wdXRhdGlvbnMiCgojIE5PVEU6IGFsd2F5cyBjaG9vc2UgbWluaW1hbCByZXNpZHVhbCAoZm0gPSAibWlucmVzIikgaW5zdGVhZCBvZiBNTCBiZWNhdXNlIG9mIG5vbi1ub3JtYWxpdHkKCiMgZm9yIEVGQXMsIHdoYXQga2luZCBvZiBjb3JyZWxhdGlvbj8KY2hvc2VuQ29yVHlwZSA8LSAiY29yIiAjIHBlYXJzb24gY29ycmVsYXRpb24KIyBjaG9zZW5Db3JUeXBlIDwtICJwb2x5IiAjIHBvbHljaG9yaWMgY29ycmVsYXRpb24KCiMgZm9yIEVGQXMsIHdoYXQga2luZCBvZiByb3RhdGlvbj8KY2hvc2VuUm90VHlwZSA8LSAidmFyaW1heCIgIyB2YXJpbWF4IHJvdGF0aW9uCiMgY2hvc2VuUm90VHlwZSA8LSAib2JsaW1pbiIgIyBvYmxpbWluIHJvdGF0aW9uCiMgY2hvc2VuUm90VHlwZSA8LSAibm9uZSIgIyBubyByb3RhdGlvbgoKZGF0YS5mcmFtZSgiY29uZGl0aW9uc0V4Y2x1ZGVkIiA9IGNob3NlbkV4Y2x1ZGUsCiAgICAgICAgICAgIm91dGxpZXJIYW5kbGluZyIgPSBjaG9zZW5PdXRsaWVySGFuZGxpbmcsCiAgICAgICAgICAgIkVGQV9jb3JyZWxhdGlvbiIgPSBjaG9zZW5Db3JUeXBlLAogICAgICAgICAgICJFRkFfcm90YXRpb24iID0gY2hvc2VuUm90VHlwZSkKYGBgCgo8cCBzdHlsZT0idGV4dC1hbGlnbjpyaWdodCI+PGEgaHJlZj0iI2hlYWRlciI+YmFjayB0byBUT0M8L2E+PC9wPgoKIyBEYXRhIHByZXBhcmF0aW9uCgpgYGB7ciBkYXRhIHVwbG9hZH0KIyBzdHVkeSAxICgyMDE1LTEyLTE1LCAyIGNvbmRpdGlvbnMsIGJldHdlZW4tc3ViamVjdHMpCmRfcmF3X3N0dWR5MSA8LSByZWFkLmNzdigiaHR0cDovL3N0YW5mb3JkLmVkdS9+a3dlaXNtYW4vZXhwZXJpbWVudHMvYm9keWhlYXJ0bWluZC9ib2R5aGVhcnRtaW5kX3N0dWR5MS5jc3YiKSAlPiUKICBtdXRhdGUoc3R1ZHkgPSAic3R1ZHkgMSIpCgojIHN0dWR5IDIgKDIwMTYtMDEtMTIsIDIgY29uZGl0aW9ucywgYmV0d2Vlbi1zdWJqZWN0cyAtIFJFUExJQ0FUSU9OKQpkX3Jhd19zdHVkeTIgPC0gcmVhZC5jc3YoImh0dHA6Ly9zdGFuZm9yZC5lZHUvfmt3ZWlzbWFuL2V4cGVyaW1lbnRzL2JvZHloZWFydG1pbmQvYm9keWhlYXJ0bWluZF9zdHVkeTIuY3N2IikgJT4lCiAgbXV0YXRlKHN0dWR5ID0gInN0dWR5IDIiKQoKIyBzdHVkeSAzICgyMDE2LTAxLTEwLCAyIGNvbmRpdGlvbnMsIHdpdGhpbi1zdWJqZWN0cykKZF9yYXdfc3R1ZHkzIDwtIHJlYWQuY3N2KCJodHRwOi8vc3RhbmZvcmQuZWR1L35rd2Vpc21hbi9leHBlcmltZW50cy9ib2R5aGVhcnRtaW5kL2JvZHloZWFydG1pbmRfc3R1ZHkzLmNzdiIpICU+JQogIG11dGF0ZShzdHVkeSA9ICJzdHVkeSAzIikKCiMgc3R1ZHkgNCAoMjAxNi0wMS0xNCwgMjEgY29uZGl0aW9ucywgYmV0d2Vlbi1zdWJqZWN0cykKZF9yYXdfc3R1ZHk0IDwtIHJlYWQuY3N2KCJodHRwOi8vc3RhbmZvcmQuZWR1L35rd2Vpc21hbi9leHBlcmltZW50cy9ib2R5aGVhcnRtaW5kL2JvZHloZWFydG1pbmRfc3R1ZHk0LmNzdiIpICU+JQogIG11dGF0ZShzdHVkeSA9ICJzdHVkeSA0IikKYGBgCgpgYGB7ciBkYXRhIGNsZWFudXB9CiMgY2xlYW4gdXAgZGF0YXNldHMKZDEgPC0gY2xlYW51cCgic3R1ZHkgMSIpCmQyIDwtIGNsZWFudXAoInN0dWR5IDIiKQpkMyA8LSBjbGVhbnVwKCJzdHVkeSAzIikKZDQgPC0gY2xlYW51cCgic3R1ZHkgNCIpCmBgYAoKYGBge3IgZGF0YWZyYW1lcyBmb3IgZGltZW5zaW9uIHJlZHVjYXRpb259CiMgbWFrZSBkYXRhZnJhbWVzIGZvciBzMQojIGQxX2JlZXRsZSA8LSBtYWtlRFJERigic3R1ZHkgMSIsICJiZWV0bGUiKQojIGQxX3JvYm90IDwtIG1ha2VEUkRGKCJzdHVkeSAxIiwgInJvYm90IikKZDFfYWxsIDwtIG1ha2VEUkRGKCJzdHVkeSAxIiwgImFsbCIpCgojIG1ha2UgZGF0YWZyYW1lcyBmb3Igc3R1ZHkgMgojIGQyX2JlZXRsZSA8LSBtYWtlRFJERigic3R1ZHkgMiIsICJiZWV0bGUiKQojIGQyX3JvYm90IDwtIG1ha2VEUkRGKCJzdHVkeSAyIiwgInJvYm90IikKZDJfYWxsIDwtIG1ha2VEUkRGKCJzdHVkeSAyIiwgImFsbCIpCgojIG1ha2UgZGF0YWZyYW1lcyBmb3Igc3R1ZHkgMwojIGQzX2JlZXRsZSA8LSBtYWtlRFJERigic3R1ZHkgMyIsICJiZWV0bGUiKQojIGQzX3JvYm90IDwtIG1ha2VEUkRGKCJzdHVkeSAzIiwgInJvYm90IikKZDNfYWxsIDwtIG1ha2VEUkRGKCJzdHVkeSAzIiwgImFsbCIpCgojIG1ha2UgZGF0YWZyYW1lcyBmb3Igc3R1ZHkgNApkNF9hbGwgPC0gbWFrZURSREYoInN0dWR5IDQiLCAiYWxsIikKYGBgCgo8cCBzdHlsZT0idGV4dC1hbGlnbjpyaWdodCI+PGEgaHJlZj0iI2hlYWRlciI+YmFjayB0byBUT0M8L2E+PC9wPgoKIyBBbmFseXNpcyBwbGFuCgpGb3IgYWxsIHN0dWRpZXMgd2UgY29uZHVjdCBleHBsb3JhdG9yeSBmYWN0b3IgYW5hbHlzZXMgdXNpbmcgUGVhcnNvbiBjb3JyZWxhdGlvbnMgdG8gZmluZCBtaW5pbXVtIHJlc2lkdWFsIHNvbHV0aW9ucy4gCgpGb3IgZWFjaCBzdHVkeSwgd2UgZmlyc3QgZXhhbWluZSBtYXhpbWFsIHVucm90YXRlZCBhbmQgcm90YXRlZCBzb2x1dGlvbnMuIFRvIGRldGVybWluZSB0aGUgbWF4aW11bSBudW1iZXIgb2YgZmFjdG9ycyB0byBleHRyYWN0LCB3ZSB1c2UgdGhlIGZvbGxvd2luZyBydWxlIG9mIHRodW1iOiBXaXRoICRwJCBvYnNlcnZhdGlvbnMgcGVyIHBhcnRpY2lwYW50LCB3ZSBjYW4gZXh0cmFjdCBhIG1heGltdW0gb2YgJGskIGZhY3RvcnMsIHdoZXJlICQocC1rKSoyID4gcCtrJCwgaS5lLiwgJGsgPCBwLzMkLiBUaHVzLCB3aXRoIDQwIG1lbnRhbCBjYXBhY2l0eSBpdGVtcywgd2UgY2FuIGV4dHJhY3QgYSBtYXhpbXVtIG9mIDEzIGZhY3RvcnMuCgpUbyBkZXRlcm1pbmUgaG93IG1hbnkgZmFjdG9ycyB0byByZXRhaW4sIHdlIHVzZSB0aGUgZm9sbG93aW5nIHByZXNldCByZXRlbnRpb24gY3JpdGVyaWEsIGNvbnNpZGVyaW5nIHRoZSB1bnJvdGF0ZWQgbWF4aW1hbCBzb2x1dGlvbiAodW5sZXNzIG90aGVyd2lzZSBub3RlZCk6CgogIC0gRWFjaCBmYWN0b3IgbXVzdCBoYXZlIGFuIGVpZ2VudmFsdWUgPjEuMC4KICAtIEVhY2ggZmFjdG9yIG11c3QgaW5kaXZpZHVhbGx5IGFjY291bnQgZm9yID41JSBvZiB0aGUgdG90YWwgdmFyaWFuY2UgaW4gdGhlIG1heGltYWwgbW9kZWwuCiAgLSBBZnRlciByb3RhdGlvbiwgZWFjaCBmYWN0b3IgbXVzdCBiZSB0aGUgZG9taW5hbnQgZmFjdG9yIChpLmUuLCB0aGUgZmFjdG9yIHdpdGggdGhlIGhpZ2hlc3QgZmFjdG9yIGxvYWRpbmcpIGZvciDiiaUxIG1lbnRhbCBjYXBhY2l0eSBpdGVtLgoKV2UgdGhlbiBleGFtaW5lIGFuZCBpbnRlcnByZXQgdmFyaW1heC1yb3RhdGVkIHNvbHV0aW9ucywgZXh0cmFjdGluZyBvbmx5IHRoZSBudW1iZXIgb2YgZmFjdG9ycyB0aGF0IG1lZXQgdGhlc2UgY3JpdGVyaWEuCgoqTm90ZSo6IEZvciBTdHVkaWVzIDEtMiwgd2UgaW5pdGlhbGx5IHBsYW5uZWQgdG8gY29uZHVjdCBkaW1lbnNpb24gcmVkdWN0aW9uIGFuYWx5c2VzIGZvciBlYWNoIGNvbmRpdGlvbiAoYmVldGxlIHZzLiByb2JvdCkgc2VwYXJhdGVseS4gSG93ZXZlciwgd2Ugbm93IGNvbnNpZGVyIHRoaXMgYW5hbHlzaXMgcGxhbiB0byBoYXZlIGJlZW4gZnVuZGFtZW50YWxseSBmbGF3ZWQ6IEVhY2ggb2YgdGhlc2Ugc2VwYXJhdGUgYW5hbHlzZXMgaXMgb25seSBjYXBhYmxlIG9mIHN1cmZhY2luZyBmYWN0b3JzIHRoYXQgaGlnaGxpZ2h0IHN1YnN0YW50aWFsIGRpc2FncmVlbWVudCBhbW9uZyBwYXJ0aWNpcGFudHMgd2l0aGluIHRoYXQgY29uZGl0aW9uIHRodXMgZmFpbGluZyB0byBjYXB0dXJlIGtleSBkaWZmZXJlbmNlcyBpbiBhdHRyaWJ1dGlvbnMgb2YgbWVudGFsIGNhcGFjaXRpZXMgdG8gYmVldGxlcyB2cy4gcm9ib3RzLCB3aXRoIG5vIGZvcm1hbCBtZWFucyBvZiBzeW50aGVzaXppbmcgcmVzdWx0cyBhY3Jvc3MgY29uZGl0aW9ucy4gTm9uZXRoZWxlc3MsIHRoZSByZXN1bHRzIG9mIHRoZXNlIGFuYWx5c2VzIGFyZSBnZW5lcmFsbHkgY29uc2lzdGVudCB3aXRoIHRoZSBmaW5kaW5ncyByZXBvcnRlZCBoZXJlOiBUaGUgbW9zdCBwcm9taW5lbnQgYW5kIHJlbGlhYmxlIGZpbmRpbmcgd2l0aGluIGVhY2ggY29uZGl0aW9uIGlzIHRoYXQgcGFydGljaXBhbnRzIGRpc3Rpbmd1aXNoIGJldHdlZW4gZW1vdGlvbmFsIGFuZCBwZXJjZXB0dWFsIHZhcmlldGllcyBvZiBleHBlcmllbmNlLiBTZWUgPGEgaHJlZj0iaHR0cHM6Ly9vc2YuaW8vemQzbXUiLCB0YXJnZXQ9ImJsYW5rIj5odHRwczovL29zZi5pby96ZDNtdTwvYT4gZm9yIHRoZSBwcmVyZWdpc3RlcmVkIGFuYWx5c2VzLCBpbmNsdWRpbmcgYW5hbHlzaXMgc2NyaXB0cy4KCiMgU3R1ZHkgMQoKRGVzaWduOiAyIGNvbmRpdGlvbnMgKGJlZXRsZSwgcm9ib3QpLCBiZXR3ZWVuLXN1YmplY3RzCkRhdGUgY29uZHVjdGVkOiAyMDE1LTEyLTE1CgojIyBEZW1vZ3JhcGhpY3MKCmBgYHtyIHMxIGRlbW9ncmFwaGljc30KIyBleGFtaW5lIGV4Y2x1c2lvbgpleGNsdWRlZENvdW50cygic3R1ZHkgMSIpCgojIG1ha2UgZGVtb2dyYXBoaWNzIHRhYmxlcwpkZW1vU2FtcGxlU2l6ZSgic3R1ZHkgMSIpCmRlbW9EdXJhdGlvbigic3R1ZHkgMSIpCmRlbW9BZ2UoInN0dWR5IDEiKQpkZW1vR2VuZGVyKCJzdHVkeSAxIikKZGVtb1JhY2UoInN0dWR5IDEiKQpkZW1vUmVsaWdpb24oInN0dWR5IDEiKQpgYGAKCjxwIHN0eWxlPSJ0ZXh0LWFsaWduOnJpZ2h0Ij48YSBocmVmPSIjaGVhZGVyIj5iYWNrIHRvIFRPQzwvYT48L3A+CgojIyBFeHBsb3JhdG9yeSBmYWN0b3IgYW5hbHlzaXMKCiMjIyBTdGVwIDE6IFJ1biBtYXhpbWFsIEVGQSAod2l0aG91dCBhbmQgd2l0aCByb3RhdGlvbikKCmBgYHtyIHMxIGFsbCBubyByb3RhdGlvbn0KIyBleGFtaW5lIHNjcmVlIHBsb3QKZmEucGFyYWxsZWwoZDFfYWxsKQoKIyBydW4gRUZBIHdpdGhvdXQgcm90YXRpb24gd2l0aCBOIGZhY3RvcnMKZWZhX2QxX2FsbF91bnJvdGF0ZWQgPC0gZmEoZDFfYWxsLCAxMywgcm90YXRlID0gIm5vbmUiLAogICAgICAgICAgICAgICAgICAgICAgICAgICBjb3IgPSBjaG9zZW5Db3JUeXBlLCBmbSA9ICJtaW5yZXMiKQpwcmludChlZmFfZDFfYWxsX3Vucm90YXRlZCkKCiMgZXhhbWluZSBlaWdlbnZhbHVlcyBhbmQgdmFyaWFuY2UgZXhwbGFpbmVkCmVmYV9kMV9hbGxfdW5yb3RhdGVkX2VpZ2VudmFsdWVzIDwtIHByaW50KGVmYV9kMV9hbGxfdW5yb3RhdGVkKSRWYWNjb3VudGVkICU+JQogIHQoKSAlPiUKICBkYXRhLmZyYW1lKCkKCiMgY291bnQgZmFjdG9ycyB3aXRoIGVpZ2VudmFsdWVzID4gMSBhbmQgdmFyaWFuY2UgZXhwbGFpbmVkID4gNSUKZWZhX2QxX2FsbF91bnJvdGF0ZWRfbmZhY3RvcnMgPC0gZWZhX2QxX2FsbF91bnJvdGF0ZWRfZWlnZW52YWx1ZXMgJT4lCiAgZmlsdGVyKFNTLmxvYWRpbmdzID4gMSwgUHJvcG9ydGlvbi5FeHBsYWluZWQgPiAwLjA1KSAlPiUKICBjb3VudCgpICU+JQogIGFzLm51bWVyaWMoKQplZmFfZDFfYWxsX3Vucm90YXRlZF9uZmFjdG9ycwpgYGAKCmBgYHtyIHMxIGFsbCByb3RhdGlvbn0KZWZhX2QxX2FsbF9yb3RhdGVkX21heCA8LSBmYShkMV9hbGwsIDEzLCByb3RhdGUgPSBjaG9zZW5Sb3RUeXBlLAogICAgICAgICAgICAgICAgICAgICAgICAgICBjb3IgPSBjaG9zZW5Db3JUeXBlLCBmbSA9ICJtaW5yZXMiKQoKZWZhX2QxX2FsbF9yb3RhdGVkIDwtIGZhKGQxX2FsbCwgZWZhX2QxX2FsbF91bnJvdGF0ZWRfbmZhY3RvcnMsIHJvdGF0ZSA9IGNob3NlblJvdFR5cGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvciA9IGNob3NlbkNvclR5cGUsIGZtID0gIm1pbnJlcyIpCgojIGNoZWNrIHRoYXQgZWFjaCBvZiB0aGVzZSBmYWN0b3JzIGlzIHRoZSBkb21pbmFudCBmYWN0b3IgZm9yIGF0IGxlYXN0IG9uZSBtZW50YWwgY2FwYWNpdHkgaXRlbQplZmFfZDFfYWxsX3JvdGF0ZWRfbG9hZGluZ3MgPC0gZmEuc29ydChsb2FkaW5ncyhlZmFfZDFfYWxsX3JvdGF0ZWQpW10pICU+JQogIGRhdGEuZnJhbWUoKSAlPiUKICByb3duYW1lc190b19jb2x1bW4oImNhcGFjaXR5IikgJT4lCiAgZ2F0aGVyKGZhY3RvciwgbG9hZGluZywgLWNhcGFjaXR5KSAlPiUKICBtdXRhdGUobG9hZGluZ19hYnMgPSBhYnMobG9hZGluZykpICU+JQogIGdyb3VwX2J5KGNhcGFjaXR5KSAlPiUKICB0b3BfbigxLCBsb2FkaW5nX2FicykgJT4lCiAgdW5ncm91cCgpCmVmYV9kMV9hbGxfcm90YXRlZF9sb2FkaW5ncwoKIyBkcm9wIGFueSBmYWN0b3JzIHdoZXJlIG4gPCAxCmVmYV9kMV9hbGxfcm90YXRlZF9sb2FkaW5ncyAlPiUgCiAgY291bnQoZmFjdG9yKSAlPiUgCiAgZmlsdGVyKG4gPiAwKQoKIyBzZXQgbnVtYmVyIG9mIGZhY3RvcnMgdG8gZXh0cmFjdApuZmFjdG9yc19kMV9hbGwgPC0gZWZhX2QxX2FsbF9yb3RhdGVkX2xvYWRpbmdzICU+JSAKICBjb3VudChmYWN0b3IpICU+JSAKICBmaWx0ZXIobiA+IDApICU+JQogIG5yb3coKQpuZmFjdG9yc19kMV9hbGwKYGBgCgojIyMgU3RlcCAyOiBSdW4gRUZBIHdpdGggdmFyaW1heCByb3RhdGlvbgoKYGBge3IgczEgYWxsIHZhcmltYXggcm90YXRpb259CiMgcnVuIEVGQSB3aXRoIHJvdGF0aW9uIHdpdGggTiBmYWN0b3JzCmVmYV9kMV9hbGxfcm90YXRlZE4gPC0gZmEoZDFfYWxsLCBuZmFjdG9yc19kMV9hbGwsIAogICAgICAgICAgICAgICAgICAgICAgICAgIHJvdGF0ZSA9IGNob3NlblJvdFR5cGUsIGNvciA9IGNob3NlbkNvclR5cGUsIGZtID0gIm1pbnJlcyIpCnByaW50KGVmYV9kMV9hbGxfcm90YXRlZE4pCgojIGdldCBsb2FkaW5ncyBmb3IgZWFjaCBmYWN0b3IKZWZhX2QxX2FsbF9yb3RhdGVkTl9sb2FkaW5ncyA8LSBsb2FkaW5ncyhlZmFfZDFfYWxsX3JvdGF0ZWROKVtdICU+JQogIGRhdGEuZnJhbWUoKSAlPiUgCiAgcm93bmFtZXNfdG9fY29sdW1uKHZhciA9ICJtYyIpCmBgYAoKPHAgc3R5bGU9InRleHQtYWxpZ246cmlnaHQiPjxhIGhyZWY9IiNoZWFkZXIiPmJhY2sgdG8gVE9DPC9hPjwvcD4KCiMjIyMgRmFjdG9yIGxvYWRpbmdzIHRhYmxlCgpgYGB7ciBzMSBsb2FkaW5ncyB0YWJsZX0KZGF0YS5mcmFtZShsb2FkaW5ncyhmYS5zb3J0KGVmYV9kMV9hbGxfcm90YXRlZE4pKVtdKSAlPiUKICByb3duYW1lc190b19jb2x1bW4oImNhcGFjaXR5IikgJT4lCiAgbXV0YXRlX2F0KHZhcnMoc3RhcnRzX3dpdGgoIk0iKSksIGZ1bnMocm91bmQyKSkKYGBgCgojIFN0dWR5IDIKCkRlc2lnbjogMiBjb25kaXRpb25zIChiZWV0bGUsIHJvYm90KSwgYmV0d2Vlbi1zdWJqZWN0cyAocmVwbGljYXRpb24gb2YgU3R1ZHkgMSkKRGF0ZSBjb25kdWN0ZWQ6IDIwMTYtMDEtMTIKCiMjIERlbW9ncmFwaGljcwoKYGBge3IgczIgZGVtb2dyYXBoaWNzfQojIGV4YW1pbmUgZXhjbHVzaW9uCmV4Y2x1ZGVkQ291bnRzKCJzdHVkeSAyIikKCiMgbWFrZSBkZW1vZ3JhcGhpY3MgdGFibGVzCmRlbW9TYW1wbGVTaXplKCJzdHVkeSAyIikKZGVtb0R1cmF0aW9uKCJzdHVkeSAyIikKZGVtb0FnZSgic3R1ZHkgMiIpCmRlbW9HZW5kZXIoInN0dWR5IDIiKQpkZW1vUmFjZSgic3R1ZHkgMiIpCmRlbW9SZWxpZ2lvbigic3R1ZHkgMiIpCmBgYAoKPHAgc3R5bGU9InRleHQtYWxpZ246cmlnaHQiPjxhIGhyZWY9IiNoZWFkZXIiPmJhY2sgdG8gVE9DPC9hPjwvcD4KCiMjIEV4cGxvcmF0b3J5IGZhY3RvciBhbmFseXNpcwoKIyMjIFN0ZXAgMTogUnVuIG1heGltYWwgRUZBICh3aXRob3V0IGFuZCB3aXRoIHJvdGF0aW9uKQoKYGBge3IgczIgYWxsIG5vIHJvdGF0aW9ufQojIGV4YW1pbmUgc2NyZWUgcGxvdApmYS5wYXJhbGxlbChkMl9hbGwpCgojIHJ1biBFRkEgd2l0aG91dCByb3RhdGlvbiB3aXRoIE4gZmFjdG9ycwplZmFfZDJfYWxsX3Vucm90YXRlZCA8LSBmYShkMl9hbGwsIDEzLCByb3RhdGUgPSAibm9uZSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvciA9IGNob3NlbkNvclR5cGUsIGZtID0gIm1pbnJlcyIpCnByaW50KGVmYV9kMl9hbGxfdW5yb3RhdGVkKQoKIyBleGFtaW5lIGVpZ2VudmFsdWVzIGFuZCB2YXJpYW5jZSBleHBsYWluZWQKZWZhX2QyX2FsbF91bnJvdGF0ZWRfZWlnZW52YWx1ZXMgPC0gcHJpbnQoZWZhX2QyX2FsbF91bnJvdGF0ZWQpJFZhY2NvdW50ZWQgJT4lCiAgdCgpICU+JQogIGRhdGEuZnJhbWUoKQoKIyBjb3VudCBmYWN0b3JzIHdpdGggZWlnZW52YWx1ZXMgPiAxIGFuZCB2YXJpYW5jZSBleHBsYWluZWQgPiA1JQplZmFfZDJfYWxsX3Vucm90YXRlZF9uZmFjdG9ycyA8LSBlZmFfZDJfYWxsX3Vucm90YXRlZF9laWdlbnZhbHVlcyAlPiUKICBmaWx0ZXIoU1MubG9hZGluZ3MgPiAxLCBQcm9wb3J0aW9uLkV4cGxhaW5lZCA+IDAuMDUpICU+JQogIGNvdW50KCkgJT4lCiAgYXMubnVtZXJpYygpCmVmYV9kMl9hbGxfdW5yb3RhdGVkX25mYWN0b3JzCmBgYAoKYGBge3IgczIgYWxsIHJvdGF0aW9ufQplZmFfZDJfYWxsX3JvdGF0ZWRfbWF4IDwtIGZhKGQyX2FsbCwgMTMsIHJvdGF0ZSA9IGNob3NlblJvdFR5cGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvciA9IGNob3NlbkNvclR5cGUsIGZtID0gIm1pbnJlcyIpCgplZmFfZDJfYWxsX3JvdGF0ZWQgPC0gZmEoZDJfYWxsLCBlZmFfZDJfYWxsX3Vucm90YXRlZF9uZmFjdG9ycywgcm90YXRlID0gY2hvc2VuUm90VHlwZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgY29yID0gY2hvc2VuQ29yVHlwZSwgZm0gPSAibWlucmVzIikKCiMgY2hlY2sgdGhhdCBlYWNoIG9mIHRoZXNlIGZhY3RvcnMgaXMgdGhlIGRvbWluYW50IGZhY3RvciBmb3IgYXQgbGVhc3Qgb25lIG1lbnRhbCBjYXBhY2l0eSBpdGVtCmVmYV9kMl9hbGxfcm90YXRlZF9sb2FkaW5ncyA8LSBmYS5zb3J0KGxvYWRpbmdzKGVmYV9kMl9hbGxfcm90YXRlZClbXSkgJT4lCiAgZGF0YS5mcmFtZSgpICU+JQogIHJvd25hbWVzX3RvX2NvbHVtbigiY2FwYWNpdHkiKSAlPiUKICBnYXRoZXIoZmFjdG9yLCBsb2FkaW5nLCAtY2FwYWNpdHkpICU+JQogIG11dGF0ZShsb2FkaW5nX2FicyA9IGFicyhsb2FkaW5nKSkgJT4lCiAgZ3JvdXBfYnkoY2FwYWNpdHkpICU+JQogIHRvcF9uKDEsIGxvYWRpbmdfYWJzKSAlPiUKICB1bmdyb3VwKCkKZWZhX2QyX2FsbF9yb3RhdGVkX2xvYWRpbmdzCgojIGRyb3AgYW55IGZhY3RvcnMgd2hlcmUgbiA8IDEKZWZhX2QyX2FsbF9yb3RhdGVkX2xvYWRpbmdzICU+JSAKICBjb3VudChmYWN0b3IpICU+JSAKICBmaWx0ZXIobiA+IDApCgojIHNldCBudW1iZXIgb2YgZmFjdG9ycyB0byBleHRyYWN0Cm5mYWN0b3JzX2QyX2FsbCA8LSBlZmFfZDJfYWxsX3JvdGF0ZWRfbG9hZGluZ3MgJT4lIAogIGNvdW50KGZhY3RvcikgJT4lIAogIGZpbHRlcihuID4gMCkgJT4lCiAgbnJvdygpCm5mYWN0b3JzX2QyX2FsbApgYGAKCiMjIyBTdGVwIDI6IFJ1biBFRkEgd2l0aCB2YXJpbWF4IHJvdGF0aW9uCgpgYGB7ciBzMiBhbGwgdmFyaW1heCByb3RhdGlvbn0KIyBydW4gRUZBIHdpdGggcm90YXRpb24gd2l0aCBOIGZhY3RvcnMKZWZhX2QyX2FsbF9yb3RhdGVkTiA8LSBmYShkMl9hbGwsIG5mYWN0b3JzX2QyX2FsbCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgcm90YXRlID0gY2hvc2VuUm90VHlwZSwgY29yID0gY2hvc2VuQ29yVHlwZSwgZm0gPSAibWlucmVzIikKcHJpbnQoZWZhX2QyX2FsbF9yb3RhdGVkTikKCiMgZ2V0IGxvYWRpbmdzIGZvciBlYWNoIGZhY3RvcgplZmFfZDJfYWxsX3JvdGF0ZWROX2xvYWRpbmdzIDwtIGxvYWRpbmdzKGVmYV9kMl9hbGxfcm90YXRlZE4pW10gJT4lCiAgZGF0YS5mcmFtZSgpICU+JSAKICByb3duYW1lc190b19jb2x1bW4odmFyID0gIm1jIikKYGBgCgo8cCBzdHlsZT0idGV4dC1hbGlnbjpyaWdodCI+PGEgaHJlZj0iI2hlYWRlciI+YmFjayB0byBUT0M8L2E+PC9wPgoKIyMjIyBGYWN0b3IgbG9hZGluZ3MgdGFibGUKCmBgYHtyIHMyIGxvYWRpbmdzIHRhYmxlfQpkYXRhLmZyYW1lKGxvYWRpbmdzKGZhLnNvcnQoZWZhX2QyX2FsbF9yb3RhdGVkTikpW10pICU+JQogIHJvd25hbWVzX3RvX2NvbHVtbigiY2FwYWNpdHkiKSAlPiUKICBtdXRhdGVfYXQodmFycyhzdGFydHNfd2l0aCgiTSIpKSwgZnVucyhyb3VuZDIpKQpgYGAKCiMgU3R1ZHkgMyAKCkRlc2lnbjogMiBjb25kaXRpb25zIChiZWV0bGUsIHJvYm90KSwgd2l0aGluLXN1YmplY3RzCkRhdGUgY29uZHVjdGVkOiAyMDE2LTAxLTEwCgojIyBEZW1vZ3JhcGhpY3MKCmBgYHtyIHMzIGRlbW9ncmFwaGljc30KIyBleGFtaW5lIGV4Y2x1c2lvbgpleGNsdWRlZENvdW50cygic3R1ZHkgMyIpCgojIG1ha2UgZGVtb2dyYXBoaWNzIHRhYmxlcwpkZW1vU2FtcGxlU2l6ZSgic3R1ZHkgMyIpCmRlbW9EdXJhdGlvbigic3R1ZHkgMyIpCmRlbW9BZ2UoInN0dWR5IDMiKQpkZW1vR2VuZGVyKCJzdHVkeSAzIikKZGVtb1JhY2UoInN0dWR5IDMiKQpkZW1vUmVsaWdpb24oInN0dWR5IDMiKQpgYGAKCjxwIHN0eWxlPSJ0ZXh0LWFsaWduOnJpZ2h0Ij48YSBocmVmPSIjaGVhZGVyIj5iYWNrIHRvIFRPQzwvYT48L3A+CgojIyBFeHBsb3JhdG9yeSBmYWN0b3IgYW5hbHlzaXMKCiMjIyBTdGVwIDE6IFJ1biBtYXhpbWFsIEVGQSAod2l0aG91dCBhbmQgd2l0aCByb3RhdGlvbikKCmBgYHtyIHMzIGFsbCBubyByb3RhdGlvbn0KIyBleGFtaW5lIHNjcmVlIHBsb3QKZmEucGFyYWxsZWwoZDNfYWxsKQoKIyBydW4gRUZBIHdpdGhvdXQgcm90YXRpb24gd2l0aCBOIGZhY3RvcnMKZWZhX2QzX2FsbF91bnJvdGF0ZWQgPC0gZmEoZDNfYWxsLCAxMywgcm90YXRlID0gIm5vbmUiLAogICAgICAgICAgICAgICAgICAgICAgICAgICBjb3IgPSBjaG9zZW5Db3JUeXBlLCBmbSA9ICJtaW5yZXMiKQpwcmludChlZmFfZDNfYWxsX3Vucm90YXRlZCkKCiMgZXhhbWluZSBlaWdlbnZhbHVlcyBhbmQgdmFyaWFuY2UgZXhwbGFpbmVkCmVmYV9kM19hbGxfdW5yb3RhdGVkX2VpZ2VudmFsdWVzIDwtIHByaW50KGVmYV9kM19hbGxfdW5yb3RhdGVkKSRWYWNjb3VudGVkICU+JQogIHQoKSAlPiUKICBkYXRhLmZyYW1lKCkKCiMgY291bnQgZmFjdG9ycyB3aXRoIGVpZ2VudmFsdWVzID4gMSBhbmQgdmFyaWFuY2UgZXhwbGFpbmVkID4gNSUKZWZhX2QzX2FsbF91bnJvdGF0ZWRfbmZhY3RvcnMgPC0gZWZhX2QzX2FsbF91bnJvdGF0ZWRfZWlnZW52YWx1ZXMgJT4lCiAgZmlsdGVyKFNTLmxvYWRpbmdzID4gMSwgUHJvcG9ydGlvbi5FeHBsYWluZWQgPiAwLjA1KSAlPiUKICBjb3VudCgpICU+JQogIGFzLm51bWVyaWMoKQplZmFfZDNfYWxsX3Vucm90YXRlZF9uZmFjdG9ycwpgYGAKCmBgYHtyIHMzIGFsbCByb3RhdGlvbn0KZWZhX2QzX2FsbF9yb3RhdGVkX21heCA8LSBmYShkM19hbGwsIDEzLCByb3RhdGUgPSBjaG9zZW5Sb3RUeXBlLAogICAgICAgICAgICAgICAgICAgICAgICAgICBjb3IgPSBjaG9zZW5Db3JUeXBlLCBmbSA9ICJtaW5yZXMiKQoKZWZhX2QzX2FsbF9yb3RhdGVkIDwtIGZhKGQzX2FsbCwgZWZhX2QzX2FsbF91bnJvdGF0ZWRfbmZhY3RvcnMsIHJvdGF0ZSA9IGNob3NlblJvdFR5cGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvciA9IGNob3NlbkNvclR5cGUsIGZtID0gIm1pbnJlcyIpCgojIGNoZWNrIHRoYXQgZWFjaCBvZiB0aGVzZSBmYWN0b3JzIGlzIHRoZSBkb21pbmFudCBmYWN0b3IgZm9yIGF0IGxlYXN0IG9uZSBtZW50YWwgY2FwYWNpdHkgaXRlbQplZmFfZDNfYWxsX3JvdGF0ZWRfbG9hZGluZ3MgPC0gZmEuc29ydChsb2FkaW5ncyhlZmFfZDNfYWxsX3JvdGF0ZWQpW10pICU+JQogIGRhdGEuZnJhbWUoKSAlPiUKICByb3duYW1lc190b19jb2x1bW4oImNhcGFjaXR5IikgJT4lCiAgZ2F0aGVyKGZhY3RvciwgbG9hZGluZywgLWNhcGFjaXR5KSAlPiUKICBtdXRhdGUobG9hZGluZ19hYnMgPSBhYnMobG9hZGluZykpICU+JQogIGdyb3VwX2J5KGNhcGFjaXR5KSAlPiUKICB0b3BfbigxLCBsb2FkaW5nX2FicykgJT4lCiAgdW5ncm91cCgpCmVmYV9kM19hbGxfcm90YXRlZF9sb2FkaW5ncwoKIyBkcm9wIGFueSBmYWN0b3JzIHdoZXJlIG4gPCAxCmVmYV9kM19hbGxfcm90YXRlZF9sb2FkaW5ncyAlPiUgCiAgY291bnQoZmFjdG9yKSAlPiUgCiAgZmlsdGVyKG4gPiAwKQoKIyBzZXQgbnVtYmVyIG9mIGZhY3RvcnMgdG8gZXh0cmFjdApuZmFjdG9yc19kM19hbGwgPC0gZWZhX2QzX2FsbF9yb3RhdGVkX2xvYWRpbmdzICU+JSAKICBjb3VudChmYWN0b3IpICU+JSAKICBmaWx0ZXIobiA+IDApICU+JQogIG5yb3coKQpuZmFjdG9yc19kM19hbGwKYGBgCgojIyMgU3RlcCAyOiBSdW4gRUZBIHdpdGggdmFyaW1heCByb3RhdGlvbgoKYGBge3IgczMgYWxsIHZhcmltYXggcm90YXRpb259CiMgcnVuIEVGQSB3aXRoIHJvdGF0aW9uIHdpdGggTiBmYWN0b3JzCmVmYV9kM19hbGxfcm90YXRlZE4gPC0gZmEoZDNfYWxsLCBuZmFjdG9yc19kM19hbGwsIAogICAgICAgICAgICAgICAgICAgICAgICAgIHJvdGF0ZSA9IGNob3NlblJvdFR5cGUsIGNvciA9IGNob3NlbkNvclR5cGUsIGZtID0gIm1pbnJlcyIpCnByaW50KGVmYV9kM19hbGxfcm90YXRlZE4pCgojIGdldCBsb2FkaW5ncyBmb3IgZWFjaCBmYWN0b3IKZWZhX2QzX2FsbF9yb3RhdGVkTl9sb2FkaW5ncyA8LSBsb2FkaW5ncyhlZmFfZDNfYWxsX3JvdGF0ZWROKVtdICU+JQogIGRhdGEuZnJhbWUoKSAlPiUgCiAgcm93bmFtZXNfdG9fY29sdW1uKHZhciA9ICJtYyIpCmBgYAoKPHAgc3R5bGU9InRleHQtYWxpZ246cmlnaHQiPjxhIGhyZWY9IiNoZWFkZXIiPmJhY2sgdG8gVE9DPC9hPjwvcD4KCiMjIyMgRmFjdG9yIGxvYWRpbmdzIHRhYmxlCgpgYGB7ciBzMyBsb2FkaW5ncyB0YWJsZX0KZGF0YS5mcmFtZShsb2FkaW5ncyhmYS5zb3J0KGVmYV9kM19hbGxfcm90YXRlZE4pKVtdKSAlPiUKICByb3duYW1lc190b19jb2x1bW4oImNhcGFjaXR5IikgJT4lCiAgbXV0YXRlX2F0KHZhcnMoc3RhcnRzX3dpdGgoIk0iKSksIGZ1bnMocm91bmQyKSkKYGBgCgojIFN0dWR5IDQKCkRlc2lnbjogMjEgY29uZGl0aW9ucywgYmV0d2Vlbi1zdWJqZWN0cwpEYXRlIGNvbmR1Y3RlZDogMjAxNi0wMS0xNAoKIyMgRGVtb2dyYXBoaWNzCgpgYGB7ciBzNCBkZW1vZ3JhcGhpY3N9CiMgZXhhbWluZSBleGNsdXNpb24KZXhjbHVkZWRDb3VudHMoInN0dWR5IDQiKQoKIyBtYWtlIGRlbW9ncmFwaGljcyB0YWJsZXMKZGVtb1NhbXBsZVNpemUoInN0dWR5IDQiKQpkZW1vRHVyYXRpb24oInN0dWR5IDQiKQpkZW1vQWdlKCJzdHVkeSA0IikKZGVtb0dlbmRlcigic3R1ZHkgNCIpCmRlbW9SYWNlKCJzdHVkeSA0IikKZGVtb0VkdWNhdGlvbigic3R1ZHkgNCIpCmBgYAoKPHAgc3R5bGU9InRleHQtYWxpZ246cmlnaHQiPjxhIGhyZWY9IiNoZWFkZXIiPmJhY2sgdG8gVE9DPC9hPjwvcD4KCiMjIEV4cGxvcmF0b3J5IGZhY3RvciBhbmFseXNpcwoKIyMjIFN0ZXAgMTogUnVuIG1heGltYWwgRUZBICh3aXRob3V0IGFuZCB3aXRoIHJvdGF0aW9uKQoKYGBge3IgczQgYWxsIG5vIHJvdGF0aW9ufQojIGV4YW1pbmUgc2NyZWUgcGxvdApmYS5wYXJhbGxlbChkNF9hbGwpCgojIHJ1biBFRkEgd2l0aG91dCByb3RhdGlvbiB3aXRoIE4gZmFjdG9ycwplZmFfZDRfYWxsX3Vucm90YXRlZCA8LSBmYShkNF9hbGwsIDEzLCByb3RhdGUgPSAibm9uZSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvciA9IGNob3NlbkNvclR5cGUsIGZtID0gIm1pbnJlcyIpCnByaW50KGVmYV9kNF9hbGxfdW5yb3RhdGVkKQoKIyBleGFtaW5lIGVpZ2VudmFsdWVzIGFuZCB2YXJpYW5jZSBleHBsYWluZWQKZWZhX2Q0X2FsbF91bnJvdGF0ZWRfZWlnZW52YWx1ZXMgPC0gcHJpbnQoZWZhX2Q0X2FsbF91bnJvdGF0ZWQpJFZhY2NvdW50ZWQgJT4lCiAgdCgpICU+JQogIGRhdGEuZnJhbWUoKQoKIyBjb3VudCBmYWN0b3JzIHdpdGggZWlnZW52YWx1ZXMgPiAxIGFuZCB2YXJpYW5jZSBleHBsYWluZWQgPiA1JQplZmFfZDRfYWxsX3Vucm90YXRlZF9uZmFjdG9ycyA8LSBlZmFfZDRfYWxsX3Vucm90YXRlZF9laWdlbnZhbHVlcyAlPiUKICBmaWx0ZXIoU1MubG9hZGluZ3MgPiAxLCBQcm9wb3J0aW9uLkV4cGxhaW5lZCA+IDAuMDUpICU+JQogIGNvdW50KCkgJT4lCiAgYXMubnVtZXJpYygpCmVmYV9kNF9hbGxfdW5yb3RhdGVkX25mYWN0b3JzCmBgYAoKYGBge3IgczQgYWxsIHJvdGF0aW9ufQplZmFfZDRfYWxsX3JvdGF0ZWRfbWF4IDwtIGZhKGQ0X2FsbCwgMTMsIHJvdGF0ZSA9IGNob3NlblJvdFR5cGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvciA9IGNob3NlbkNvclR5cGUsIGZtID0gIm1pbnJlcyIpCgplZmFfZDRfYWxsX3JvdGF0ZWQgPC0gZmEoZDRfYWxsLCBlZmFfZDRfYWxsX3Vucm90YXRlZF9uZmFjdG9ycywgcm90YXRlID0gY2hvc2VuUm90VHlwZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgY29yID0gY2hvc2VuQ29yVHlwZSwgZm0gPSAibWlucmVzIikKCiMgY2hlY2sgdGhhdCBlYWNoIG9mIHRoZXNlIGZhY3RvcnMgaXMgdGhlIGRvbWluYW50IGZhY3RvciBmb3IgYXQgbGVhc3Qgb25lIG1lbnRhbCBjYXBhY2l0eSBpdGVtCmVmYV9kNF9hbGxfcm90YXRlZF9sb2FkaW5ncyA8LSBmYS5zb3J0KGxvYWRpbmdzKGVmYV9kNF9hbGxfcm90YXRlZClbXSkgJT4lCiAgZGF0YS5mcmFtZSgpICU+JQogIHJvd25hbWVzX3RvX2NvbHVtbigiY2FwYWNpdHkiKSAlPiUKICBnYXRoZXIoZmFjdG9yLCBsb2FkaW5nLCAtY2FwYWNpdHkpICU+JQogIG11dGF0ZShsb2FkaW5nX2FicyA9IGFicyhsb2FkaW5nKSkgJT4lCiAgZ3JvdXBfYnkoY2FwYWNpdHkpICU+JQogIHRvcF9uKDEsIGxvYWRpbmdfYWJzKSAlPiUKICB1bmdyb3VwKCkKZWZhX2Q0X2FsbF9yb3RhdGVkX2xvYWRpbmdzCgojIGRyb3AgYW55IGZhY3RvcnMgd2hlcmUgbiA8IDEKZWZhX2Q0X2FsbF9yb3RhdGVkX2xvYWRpbmdzICU+JSAKICBjb3VudChmYWN0b3IpICU+JSAKICBmaWx0ZXIobiA+IDApCgojIHNldCBudW1iZXIgb2YgZmFjdG9ycyB0byBleHRyYWN0Cm5mYWN0b3JzX2Q0X2FsbCA8LSBlZmFfZDRfYWxsX3JvdGF0ZWRfbG9hZGluZ3MgJT4lIAogIGNvdW50KGZhY3RvcikgJT4lIAogIGZpbHRlcihuID4gMCkgJT4lCiAgbnJvdygpCm5mYWN0b3JzX2Q0X2FsbApgYGAKCiMjIyBTdGVwIDI6IFJ1biBFRkEgd2l0aCB2YXJpbWF4IHJvdGF0aW9uCgpgYGB7ciBzNCBhbGwgdmFyaW1heCByb3RhdGlvbn0KIyBydW4gRUZBIHdpdGggcm90YXRpb24gd2l0aCBOIGZhY3RvcnMKZWZhX2Q0X2FsbF9yb3RhdGVkTiA8LSBmYShkNF9hbGwsIG5mYWN0b3JzX2Q0X2FsbCwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgcm90YXRlID0gY2hvc2VuUm90VHlwZSwgY29yID0gY2hvc2VuQ29yVHlwZSwgZm0gPSAibWlucmVzIikKcHJpbnQoZWZhX2Q0X2FsbF9yb3RhdGVkTikKCiMgZ2V0IGxvYWRpbmdzIGZvciBlYWNoIGZhY3RvcgplZmFfZDRfYWxsX3JvdGF0ZWROX2xvYWRpbmdzIDwtIGxvYWRpbmdzKGVmYV9kNF9hbGxfcm90YXRlZE4pW10gJT4lCiAgZGF0YS5mcmFtZSgpICU+JSAKICByb3duYW1lc190b19jb2x1bW4odmFyID0gIm1jIikKYGBgCgo8cCBzdHlsZT0idGV4dC1hbGlnbjpyaWdodCI+PGEgaHJlZj0iI2hlYWRlciI+YmFjayB0byBUT0M8L2E+PC9wPgoKIyMjIyBGYWN0b3IgbG9hZGluZ3MgdGFibGUKCmBgYHtyIHM0IGxvYWRpbmdzIHRhYmxlfQpkYXRhLmZyYW1lKGxvYWRpbmdzKGZhLnNvcnQoZWZhX2Q0X2FsbF9yb3RhdGVkTikpW10pICU+JQogIHJvd25hbWVzX3RvX2NvbHVtbigiY2FwYWNpdHkiKSAlPiUKICBtdXRhdGVfYXQodmFycyhzdGFydHNfd2l0aCgiTSIpKSwgZnVucyhyb3VuZDIpKQpgYGAKCiMgQmlnIGZhY3RvciBsb2FkaW5ncyB0YWJsZSBmb3IgYWxsIHN0dWRpZXMgKFN0dWRpZXMgMS00KQoKYGBge3IgYWxsIHN0dWRpZXMgbG9hZGluZ3MgdGFibGV9Cm9yZGVyX3MxIDwtIGxvYWRpbmdzKGZhLnNvcnQoZWZhX2QxX2FsbF9yb3RhdGVkTikpW10gJT4lCiAgZGF0YS5mcmFtZSgpICU+JQogIHJvd25hbWVzX3RvX2NvbHVtbih2YXIgPSAibWMiKSAlPiUKICByb3duYW1lc190b19jb2x1bW4odmFyID0gIm9yZGVyMSIpICU+JQogIHJlbmFtZShzMV9NUjIgPSBNUjIsIHMxX01SMSA9IE1SMSwgczFfTVIzID0gTVIzKQoKb3JkZXJfczIgPC0gbG9hZGluZ3MoZmEuc29ydChlZmFfZDJfYWxsX3JvdGF0ZWROKSlbXSAlPiUKICBkYXRhLmZyYW1lKCkgJT4lCiAgcm93bmFtZXNfdG9fY29sdW1uKHZhciA9ICJtYyIpICU+JQogIHJlbmFtZShzMl9NUjIgPSBNUjIsIHMyX01SMSA9IE1SMSwgczJfTVIzID0gTVIzKQoKb3JkZXJfczMgPC0gbG9hZGluZ3MoZmEuc29ydChlZmFfZDNfYWxsX3JvdGF0ZWROKSlbXSAlPiUKICBkYXRhLmZyYW1lKCkgJT4lCiAgcm93bmFtZXNfdG9fY29sdW1uKHZhciA9ICJtYyIpICU+JQogIHJlbmFtZShzM19NUjIgPSBNUjIsIHMzX01SMSA9IE1SMSwgczNfTVIzID0gTVIzKQoKb3JkZXJfczQgPC0gbG9hZGluZ3MoZmEuc29ydChlZmFfZDRfYWxsX3JvdGF0ZWROKSlbXSAlPiUKICBkYXRhLmZyYW1lKCkgJT4lCiAgcm93bmFtZXNfdG9fY29sdW1uKHZhciA9ICJtYyIpICU+JQogIHJlbmFtZShzNF9NUjIgPSBNUjIsIHM0X01SMSA9IE1SMSwgczRfTVIzID0gTVIzKQoKYmlnVGFibGUgPC0gb3JkZXJfczEgJT4lCiAgZnVsbF9qb2luKG9yZGVyX3MyKSAlPiUKICBmdWxsX2pvaW4ob3JkZXJfczMpICU+JQogIGZ1bGxfam9pbihvcmRlcl9zNCkgJT4lCiAgbXV0YXRlX2F0KHZhcnMoc3RhcnRzX3dpdGgoInMiKSksIGZ1bnMocm91bmQyKSkgJT4lCiAgc2VsZWN0KG9yZGVyMSwgbWMsIGVuZHNfd2l0aCgiTVIxIiksIGVuZHNfd2l0aCgiTVIyIiksIGVuZHNfd2l0aCgiTVIzIikpCgpiaWdUYWJsZQpgYGAKCiMgRmlndXJlcwoKYGBge3IgcGxvdHRpbmcgc2V0dXAgY2hhcmFjdGVyIG1lYW5zfQojIGJvb3RzdHJhcCA5NSUgQ0lzIGZvciByYXRpbmdzIGJ5IGNoYXJhY3RlciAobm9ucGFyYW1ldHJpYykKIyBzdHVkeSAxCmNoYXJfcGxvdHRpbmdfcmF0aW5nc19zMSA8LSBkMSAlPiUgCiAgc2VsZWN0KGNvbmRpdGlvbiwgc3ViaWQsIGhhcHB5OnByaWRlKSAlPiUKICBnYXRoZXIobWMsIHJlc3BvbnNlLCAtc3ViaWQsIC1jb25kaXRpb24pICU+JQogIG11dGF0ZShyZXNwb25zZSA9IGFzLm51bWVyaWMocmVzcG9uc2UpKSAlPiUKICBtdWx0aV9ib290KGNvbHVtbiA9ICJyZXNwb25zZSIsCiAgICAgICAgICAgICBzdW1tYXJ5X2Z1bmN0aW9uID0gIm1lYW4iLAogICAgICAgICAgICAgc3VtbWFyeV9ncm91cHMgPSBjKCJjb25kaXRpb24iLCAibWMiKSwKICAgICAgICAgICAgIHN0YXRpc3RpY3NfZnVuY3Rpb25zID0gYygiY2lfbG93ZXIiLCAibWVhbiIsICJjaV91cHBlciIpKSAlPiUKICBmdWxsX2pvaW4oZGVtb1NhbXBsZVNpemUoInN0dWR5IDEiKSAlPiUgZmlsdGVyKGNvbmRpdGlvbiAhPSAiYWxsIikpICU+JQogIG11dGF0ZShzdHVkeSA9ICJzdHVkeSAxIikKCiMgc3R1ZHkgMgpjaGFyX3Bsb3R0aW5nX3JhdGluZ3NfczIgPC0gZDIgJT4lIAogIHNlbGVjdChjb25kaXRpb24sIHN1YmlkLCBoYXBweTpwcmlkZSkgJT4lCiAgZ2F0aGVyKG1jLCByZXNwb25zZSwgLXN1YmlkLCAtY29uZGl0aW9uKSAlPiUKICBtdXRhdGUocmVzcG9uc2UgPSBhcy5udW1lcmljKHJlc3BvbnNlKSkgJT4lCiAgbXVsdGlfYm9vdChjb2x1bW4gPSAicmVzcG9uc2UiLAogICAgICAgICAgICAgc3VtbWFyeV9mdW5jdGlvbiA9ICJtZWFuIiwKICAgICAgICAgICAgIHN1bW1hcnlfZ3JvdXBzID0gYygiY29uZGl0aW9uIiwgIm1jIiksCiAgICAgICAgICAgICBzdGF0aXN0aWNzX2Z1bmN0aW9ucyA9IGMoImNpX2xvd2VyIiwgIm1lYW4iLCAiY2lfdXBwZXIiKSkgJT4lCiAgZnVsbF9qb2luKGRlbW9TYW1wbGVTaXplKCJzdHVkeSAyIikgJT4lIGZpbHRlcihjb25kaXRpb24gIT0gImFsbCIpKSAlPiUKICBtdXRhdGUoc3R1ZHkgPSAic3R1ZHkgMiIpCgoKIyBzdHVkeSAzCmNoYXJfcGxvdHRpbmdfcmF0aW5nc19zMyA8LSBkMyAlPiUgCiAgc2VsZWN0KHRhcmdldCwgc3ViaWQsIGhhcHB5OnByaWRlKSAlPiUKICByZW5hbWUoY29uZGl0aW9uID0gdGFyZ2V0KSAlPiUKICBnYXRoZXIobWMsIHJlc3BvbnNlLCAtc3ViaWQsIC1jb25kaXRpb24pICU+JQogIG11dGF0ZShyZXNwb25zZSA9IGFzLm51bWVyaWMocmVzcG9uc2UpKSAlPiUKICBtdWx0aV9ib290KGNvbHVtbiA9ICJyZXNwb25zZSIsCiAgICAgICAgICAgICBzdW1tYXJ5X2Z1bmN0aW9uID0gIm1lYW4iLAogICAgICAgICAgICAgc3VtbWFyeV9ncm91cHMgPSBjKCJjb25kaXRpb24iLCAibWMiKSwKICAgICAgICAgICAgIHN0YXRpc3RpY3NfZnVuY3Rpb25zID0gYygiY2lfbG93ZXIiLCAibWVhbiIsICJjaV91cHBlciIpKSAlPiUKICBmdWxsX2pvaW4oZGVtb1NhbXBsZVNpemUoInN0dWR5IDMiKSAlPiUgZmlsdGVyKGNvbmRpdGlvbiAhPSAiYWxsIikpICU+JQogIG11dGF0ZShzdHVkeSA9ICJzdHVkeSAzIikKCiMgc3R1ZHkgNApjaGFyX3Bsb3R0aW5nX3JhdGluZ3NfczQgPC0gZDQgJT4lIAogIHNlbGVjdChjb25kaXRpb24sIHN1YmlkLCBoYXBweTpwcmlkZSkgJT4lCiAgZ2F0aGVyKG1jLCByZXNwb25zZSwgLXN1YmlkLCAtY29uZGl0aW9uKSAlPiUKICBtdXRhdGUocmVzcG9uc2UgPSBhcy5udW1lcmljKHJlc3BvbnNlKSkgJT4lCiAgbXVsdGlfYm9vdChjb2x1bW4gPSAicmVzcG9uc2UiLAogICAgICAgICAgICAgc3VtbWFyeV9mdW5jdGlvbiA9ICJtZWFuIiwKICAgICAgICAgICAgIHN1bW1hcnlfZ3JvdXBzID0gYygiY29uZGl0aW9uIiwgIm1jIiksCiAgICAgICAgICAgICBzdGF0aXN0aWNzX2Z1bmN0aW9ucyA9IGMoImNpX2xvd2VyIiwgIm1lYW4iLCAiY2lfdXBwZXIiKSkgJT4lCiAgZnVsbF9qb2luKGRlbW9TYW1wbGVTaXplKCJzdHVkeSA0IikgJT4lIGZpbHRlcihjb25kaXRpb24gIT0gImFsbCIpKSAlPiUKICBtdXRhdGUoc3R1ZHkgPSAic3R1ZHkgNCIpCmBgYAoKYGBge3IgcGxvdHRpbmcgc2V0dXAgY2hhcmFjdGVyIG1lYW5zIG1lcmdlfQpjaGFyX3Bsb3R0aW5nX3JhdGluZ3NfYWxsIDwtIGNoYXJfcGxvdHRpbmdfcmF0aW5nc19zMSAlPiUKICBmdWxsX2pvaW4oY2hhcl9wbG90dGluZ19yYXRpbmdzX3MyKSAlPiUKICBmdWxsX2pvaW4oY2hhcl9wbG90dGluZ19yYXRpbmdzX3MzKSAlPiUKICBmdWxsX2pvaW4oY2hhcl9wbG90dGluZ19yYXRpbmdzX3M0KSAlPiUKICB1bmdyb3VwKCkgJT4lCiAgbXV0YXRlKHN0dWR5ID0gZmFjdG9yKHN0dWR5KSwKICAgICAgICAgY29uZGl0aW9uID0gZmFjdG9yKGNvbmRpdGlvbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldmVscyA9IGMoInN0YXBsZXIiLCAiY2FyIiwgImNvbXB1dGVyIiwgInJvYm90IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm1pY3JvYmUiLCAiYmVldGxlIiwgImZpc2giLCAiYmx1ZWpheSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJmcm9nIiwgIm1vdXNlIiwgImdvYXQiLCAiZG9nIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImJlYXIiLCAiZG9scGhpbiIsICJlbGVwaGFudCIsICJjaGltcCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJmZXR1cyIsICJwdnMiLCAiaW5mYW50IiwgImNoaWxkIiwgImFkdWx0IikpKQpgYGAKCmBgYHtyIHBsb3R0aW5nIHNldHVwIGNhcGFjaXR5IHdvcmRpbmdzfQpjaGFyX3Bsb3R0aW5nX3dvcmRpbmdzIDwtIGNoYXJfcGxvdHRpbmdfcmF0aW5nc19hbGwgJT4lCiAgdW5ncm91cCgpICU+JQogIHNlbGVjdChtYykgJT4lCiAgZGlzdGluY3QoKSAlPiUgCiAgbXV0YXRlKHdvcmRpbmcgPSBmYWN0b3IoCiAgICByZWNvZGUobWMsCiAgICAgICAgICAgaHVuZ3J5ID0gImdldHRpbmcgaHVuZ3J5IiwgcGFpbiA9ICJleHBlcmllbmNpbmcgcGFpbiIsCiAgICAgICAgICAgdGlyZWQgPSAiZmVlbGluZyB0aXJlZCIsIGZlYXIgPSAiZXhwZXJpZW5jaW5nIGZlYXIiLAogICAgICAgICAgIGNvbXB1dGF0aW9ucyA9ICJkb2luZyBjb21wdXRhdGlvbnMiLCBwbGVhc3VyZSA9ICJleHBlcmllbmNpbmcgcGxlYXN1cmUiLAogICAgICAgICAgIGNvbnNjaW91cyA9ICJiZWluZyBjb25zY2lvdXMiLCBmcmVlX3dpbGwgPSAiaGF2aW5nIGZyZWUgd2lsbCIsCiAgICAgICAgICAgc2FmZSA9ICJmZWVsaW5nIHNhZmUiLCBkZXNpcmVzID0gImhhdmluZyBkZXNpcmVzIiwKICAgICAgICAgICBjYWxtID0gImZlZWxpbmcgY2FsbSIsIG5hdXNlYXRlZCA9ICJmZWVsaW5nIG5hdXNlYXRlZCIsCiAgICAgICAgICAgYW5ncnkgPSAiZ2V0dGluZyBhbmdyeSIsIGludGVudGlvbnMgPSAiaGF2aW5nIGludGVudGlvbnMiLAogICAgICAgICAgIHNlbGZfYXdhcmUgPSAiYmVpbmcgc2VsZi1hd2FyZSIsIG9kb3JzID0gImRldGVjdGluZyBvZG9ycyIsCiAgICAgICAgICAgZW1iYXJyYXNzZWQgPSAiZmVlbGluZyBlbWJhcnJhc3NlZCIsIHByaWRlID0gImV4cGVyaWVuY2luZyBwcmlkZSIsCiAgICAgICAgICAgbG92ZSA9ICJmZWVsaW5nIGxvdmUiLCBndWlsdCA9ICJleHBlcmllbmNpbmcgZ3VpbHQiLAogICAgICAgICAgIGRlcHJlc3NlZCA9ICJmZWVsaW5nIGRlcHJlc3NlZCIsIGRpc3Jlc3BlY3RlZCA9ICJmZWVsaW5nIGRpc3Jlc3BlY3RlZCIsCiAgICAgICAgICAgYmVsaWVmcyA9ICJob2xkaW5nIGJlbGllZnMiLCBlbW9fcmVjb2cgPSAidW5kZXJzdGFuZGluZyAuLi4gZmVlbGluZyIsCiAgICAgICAgICAgam95ID0gImV4cGVyaWVuY2luZyBqb3kiLCBwZXJzb25hbGl0eSA9ICJoYXZpbmcgYSBwZXJzb25hbGl0eSIsCiAgICAgICAgICAgaGFwcHkgPSAiZmVlbGluZyBoYXBweSIsIG1vcmFsaXR5ID0gInRlbGxpbmcgcmlnaHQgZnJvbSB3cm9uZyIsCiAgICAgICAgICAgdGhvdWdodHMgPSAiaGF2aW5nIHRob3VnaHRzIiwgc2VsZl9yZXN0cmFpbnQgPSAiZXhlcmNpc2luZyBzZWxmLXJlc3RyYWludCIsCiAgICAgICAgICAgcmVtZW1iZXJpbmcgPSAicmVtZW1iZXJpbmcgdGhpbmdzIiwgcmVjb2duaXppbmcgPSAicmVjb2duaXppbmcgb3RoZXJzIiwKICAgICAgICAgICB0ZW1wZXJhdHVyZSA9ICJzZW5zaW5nIHRlbXBlcmF0dXJlcyIsIGNvbW11bmljYXRpbmcgPSAiY29tbXVuaWNhdGluZyAuLi4iLAogICAgICAgICAgIGdvYWwgPSAid29ya2luZyB0b3dhcmQgYSBnb2FsIiwgZGVwdGggPSAicGVyY2VpdmluZyBkZXB0aCIsCiAgICAgICAgICAgc291bmRzID0gImRldGVjdGluZyBzb3VuZHMiLCBzZWVpbmcgPSAic2VlaW5nIHRoaW5ncyIsCiAgICAgICAgICAgY2hvaWNlcyA9ICJtYWtpbmcgY2hvaWNlcyIsIHJlYXNvbmluZyA9ICJyZWFzb25pbmcgYWJvdXQgdGhpbmdzIikpKQpgYGAKCgpgYGB7ciBwbG90dGluZyBzZXR1cCBsb2FkaW5nc30KIyBtZXJnZSB3aXRoIGxvYWRpbmdzLCBvcmRlcmluZ3MsIGFuZCBkb21pbmFudCBmYWN0b3JzIGZyb20gZWFjaCBzdHVkeSAKY2hhcl9wbG90dGluZyA8LSBjaGFyX3Bsb3R0aW5nX3JhdGluZ3NfYWxsICU+JQogIGZ1bGxfam9pbihjaGFyX3Bsb3R0aW5nX3dvcmRpbmdzKSAlPiUKICBmdWxsX2pvaW4ob3JkZXJfczEgJT4lCiAgICAgICAgICAgICAgbXV0YXRlKHMxX01SMV9hYnMgPSBhYnMoczFfTVIxKSwKICAgICAgICAgICAgICAgICAgICAgczFfTVIyX2FicyA9IGFicyhzMV9NUjIpLAogICAgICAgICAgICAgICAgICAgICBzMV9NUjNfYWJzID0gYWJzKHMxX01SMyksCiAgICAgICAgICAgICAgICAgICAgIHMxX2ZhY3RvciA9IAogICAgICAgICAgICAgICAgICAgICAgIGlmZWxzZShzMV9NUjFfYWJzID4gczFfTVIyX2FicyAmCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgczFfTVIxX2FicyA+IHMxX01SM19hYnMsICJCT0RZIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZlbHNlKHMxX01SMl9hYnMgPiBzMV9NUjFfYWJzICYKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgczFfTVIyX2FicyA+IHMxX01SM19hYnMsICJIRUFSVCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZmVsc2UoczFfTVIzX2FicyA+IHMxX01SMV9hYnMgJgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgczFfTVIzX2FicyA+IHMxX01SMl9hYnMsICJNSU5EIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOQSkpKSwKICAgICAgICAgICAgICAgICAgICAgczFfY29sb3IgPSByZWNvZGUoczFfZmFjdG9yLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQk9EWSIgPSAiIzM3N0VCOCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJIRUFSVCIgPSAiIzREQUY0QSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJNSU5EIiA9ICIjRTQxQTFDIiksCiAgICAgICAgICAgICAgICAgICAgIHMxX29yZGVyID0gYXMubnVtZXJpYyhvcmRlcjEpKSAlPiUKICAgICAgICAgICAgICBzZWxlY3QoLXMxX01SMV9hYnMsIC1zMV9NUjJfYWJzLCAtczFfTVIzX2FicykpICU+JQogIGZ1bGxfam9pbihvcmRlcl9zMiAlPiUKICAgICAgICAgICAgICBkYXRhLmZyYW1lKCkgJT4lCiAgICAgICAgICAgICAgbXV0YXRlKHMyX01SMV9hYnMgPSBhYnMoczJfTVIxKSwKICAgICAgICAgICAgICAgICAgICAgczJfTVIyX2FicyA9IGFicyhzMl9NUjIpLAogICAgICAgICAgICAgICAgICAgICBzMl9NUjNfYWJzID0gYWJzKHMyX01SMyksCiAgICAgICAgICAgICAgICAgICAgIHMyX2ZhY3RvciA9IAogICAgICAgICAgICAgICAgICAgICAgIGlmZWxzZShzMl9NUjFfYWJzID4gczJfTVIyX2FicyAmCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgczJfTVIxX2FicyA+IHMyX01SM19hYnMsICJCT0RZIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZlbHNlKHMyX01SMl9hYnMgPiBzMl9NUjFfYWJzICYKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgczJfTVIyX2FicyA+IHMyX01SM19hYnMsICJIRUFSVCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZmVsc2UoczJfTVIzX2FicyA+IHMyX01SMV9hYnMgJgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgczJfTVIzX2FicyA+IHMyX01SMl9hYnMsICJNSU5EIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOQSkpKSwKICAgICAgICAgICAgICAgICAgICAgczJfY29sb3IgPSByZWNvZGUoczJfZmFjdG9yLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQk9EWSIgPSAiIzM3N0VCOCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJIRUFSVCIgPSAiIzREQUY0QSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJNSU5EIiA9ICIjRTQxQTFDIikpICU+JQogICAgICAgICAgICAgIHJvd25hbWVzX3RvX2NvbHVtbih2YXIgPSAiczJfb3JkZXIiKSAlPiUKICAgICAgICAgICAgICBtdXRhdGUoczJfb3JkZXIgPSBhcy5udW1lcmljKHMyX29yZGVyKSkgJT4lCiAgICAgICAgICAgICAgc2VsZWN0KC1zMl9NUjFfYWJzLCAtczJfTVIyX2FicywgLXMyX01SM19hYnMpKSAlPiUKICBmdWxsX2pvaW4ob3JkZXJfczMgJT4lCiAgICAgICAgICAgICAgbXV0YXRlKHMzX01SMV9hYnMgPSBhYnMoczNfTVIxKSwKICAgICAgICAgICAgICAgICAgICAgczNfTVIyX2FicyA9IGFicyhzM19NUjIpLAogICAgICAgICAgICAgICAgICAgICBzM19NUjNfYWJzID0gYWJzKHMzX01SMyksCiAgICAgICAgICAgICAgICAgICAgIHMzX2ZhY3RvciA9IAogICAgICAgICAgICAgICAgICAgICAgIGlmZWxzZShzM19NUjFfYWJzID4gczNfTVIyX2FicyAmCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgczNfTVIxX2FicyA+IHMzX01SM19hYnMsICJCT0RZIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZlbHNlKHMzX01SMl9hYnMgPiBzM19NUjFfYWJzICYKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgczNfTVIyX2FicyA+IHMzX01SM19hYnMsICJIRUFSVCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZmVsc2UoczNfTVIzX2FicyA+IHMzX01SMV9hYnMgJgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgczNfTVIzX2FicyA+IHMzX01SMl9hYnMsICJNSU5EIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOQSkpKSwKICAgICAgICAgICAgICAgICAgICAgczNfY29sb3IgPSByZWNvZGUoczNfZmFjdG9yLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQk9EWSIgPSAiIzM3N0VCOCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJIRUFSVCIgPSAiIzREQUY0QSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJNSU5EIiA9ICIjRTQxQTFDIikpICU+JQogICAgICAgICAgICAgIHJvd25hbWVzX3RvX2NvbHVtbih2YXIgPSAiczNfb3JkZXIiKSAlPiUKICAgICAgICAgICAgICBtdXRhdGUoczNfb3JkZXIgPSBhcy5udW1lcmljKHMzX29yZGVyKSkgJT4lCiAgICAgICAgICAgICAgc2VsZWN0KC1zM19NUjFfYWJzLCAtczNfTVIyX2FicywgLXMzX01SM19hYnMpKSAlPiUKICBmdWxsX2pvaW4ob3JkZXJfczQgJT4lCiAgICAgICAgICAgICAgbXV0YXRlKHM0X01SMV9hYnMgPSBhYnMoczRfTVIxKSwKICAgICAgICAgICAgICAgICAgICAgczRfTVIyX2FicyA9IGFicyhzNF9NUjIpLAogICAgICAgICAgICAgICAgICAgICBzNF9NUjNfYWJzID0gYWJzKHM0X01SMyksCiAgICAgICAgICAgICAgICAgICAgIHM0X2ZhY3RvciA9IAogICAgICAgICAgICAgICAgICAgICAgIGlmZWxzZShzNF9NUjFfYWJzID4gczRfTVIyX2FicyAmCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgczRfTVIxX2FicyA+IHM0X01SM19hYnMsICJCT0RZIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZlbHNlKHM0X01SMl9hYnMgPiBzNF9NUjFfYWJzICYKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgczRfTVIyX2FicyA+IHM0X01SM19hYnMsICJIRUFSVCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZmVsc2UoczRfTVIzX2FicyA+IHM0X01SMV9hYnMgJgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgczRfTVIzX2FicyA+IHM0X01SMl9hYnMsICJNSU5EIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOQSkpKSwKICAgICAgICAgICAgICAgICAgICAgczRfY29sb3IgPSByZWNvZGUoczRfZmFjdG9yLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQk9EWSIgPSAiIzM3N0VCOCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJIRUFSVCIgPSAiIzREQUY0QSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJNSU5EIiA9ICIjRTQxQTFDIikpICU+JQogICAgICAgICAgICAgIHJvd25hbWVzX3RvX2NvbHVtbih2YXIgPSAiczRfb3JkZXIiKSAlPiUKICAgICAgICAgICAgICBtdXRhdGUoczRfb3JkZXIgPSBhcy5udW1lcmljKHM0X29yZGVyKSkgJT4lCiAgICAgICAgICAgICAgc2VsZWN0KC1zNF9NUjFfYWJzLCAtczRfTVIyX2FicywgLXM0X01SM19hYnMpKQoKIyBjb25maWd1cmUgcGxvdCBsYWJlbHMKbGFiZWxfZGZfczEgPC0gY2hhcl9wbG90dGluZyAlPiUgZmlsdGVyKHN0dWR5ID09ICJzdHVkeSAxIikgJT4lIHNlbGVjdChjb25kaXRpb24sIG4pICU+JSB1bmlxdWUoKQpsYWJlbF9kZl9zMiA8LSBjaGFyX3Bsb3R0aW5nICU+JSBmaWx0ZXIoc3R1ZHkgPT0gInN0dWR5IDIiKSAlPiUgc2VsZWN0KGNvbmRpdGlvbiwgbikgJT4lIHVuaXF1ZSgpCmxhYmVsX2RmX3MzIDwtIGNoYXJfcGxvdHRpbmcgJT4lIGZpbHRlcihzdHVkeSA9PSAic3R1ZHkgMyIpICU+JSBzZWxlY3QoY29uZGl0aW9uLCBuKSAlPiUgdW5pcXVlKCkKbGFiZWxfZGZfczQgPC0gY2hhcl9wbG90dGluZyAlPiUgZmlsdGVyKHN0dWR5ID09ICJzdHVkeSA0IikgJT4lIHNlbGVjdChjb25kaXRpb24sIG4pICU+JSB1bmlxdWUoKQoKZmFjZXRMYWJzX3MxIDwtIGdzdWIoIiBcXCgiLCAiXG4oIiwgbWFrZUZhY2V0TGFicyhjaGFyX3Bsb3R0aW5nICU+JSBmaWx0ZXIoc3R1ZHkgPT0gInN0dWR5IDEiKSkpCmZhY2V0TGFic19zMiA8LSBnc3ViKCIgXFwoIiwgIlxuKCIsIG1ha2VGYWNldExhYnMoY2hhcl9wbG90dGluZyAlPiUgZmlsdGVyKHN0dWR5ID09ICJzdHVkeSAyIikpKQpmYWNldExhYnNfczMgPC0gZ3N1YigiIFxcKCIsICJcbigiLCBtYWtlRmFjZXRMYWJzKGNoYXJfcGxvdHRpbmcgJT4lIGZpbHRlcihzdHVkeSA9PSAic3R1ZHkgMyIpKSkKZmFjZXRMYWJzX3M0IDwtIGdzdWIoIiBcXCgiLCAiXG4oIiwgbWFrZUZhY2V0TGFicyhjaGFyX3Bsb3R0aW5nICU+JSBmaWx0ZXIoc3R1ZHkgPT0gInN0dWR5IDQiKSkpCgojIGNvbmZpZ3VyZSBjdXN0b20gcGFsZXR0ZQpteVBhbGV0dGUgPC0gYnJld2VyLnBhbCgzLCAiU2V0MSIpOyBuYW1lcyhteVBhbGV0dGUpIDwtIGMoIkJPRFkiLCAiSEVBUlQiLCAiTUlORCIpCgpwYWxldHRlX2Jhc2UgPC0gY2hhcl9wbG90dGluZyAlPiUgCiAgc2VsZWN0KG1jLCBlbmRzX3dpdGgoIl9mYWN0b3IiKSkgJT4lCiAgZGlzdGluY3QoKQpwYWxldHRlX3MxIDwtIGMocmVwKG15UGFsZXR0ZVsiTUlORCJdLCBwYWxldHRlX2Jhc2UgJT4lIGZpbHRlcihzMV9mYWN0b3IgPT0gIk1JTkQiKSAlPiUgY291bnQoKSksCiAgICAgICAgICAgICAgICByZXAobXlQYWxldHRlWyJIRUFSVCJdLCBwYWxldHRlX2Jhc2UgJT4lIGZpbHRlcihzMV9mYWN0b3IgPT0gIkhFQVJUIikgJT4lIGNvdW50KCkpLAogICAgICAgICAgICAgICAgcmVwKG15UGFsZXR0ZVsiQk9EWSJdLCBwYWxldHRlX2Jhc2UgJT4lIGZpbHRlcihzMV9mYWN0b3IgPT0gIkJPRFkiKSAlPiUgY291bnQoKSkpCnBhbGV0dGVfczIgPC0gYyhyZXAobXlQYWxldHRlWyJNSU5EIl0sIHBhbGV0dGVfYmFzZSAlPiUgZmlsdGVyKHMyX2ZhY3RvciA9PSAiTUlORCIpICU+JSBjb3VudCgpKSwKICAgICAgICAgICAgICAgIHJlcChteVBhbGV0dGVbIkhFQVJUIl0sIHBhbGV0dGVfYmFzZSAlPiUgZmlsdGVyKHMyX2ZhY3RvciA9PSAiSEVBUlQiKSAlPiUgY291bnQoKSksCiAgICAgICAgICAgICAgICByZXAobXlQYWxldHRlWyJCT0RZIl0sIHBhbGV0dGVfYmFzZSAlPiUgZmlsdGVyKHMyX2ZhY3RvciA9PSAiQk9EWSIpICU+JSBjb3VudCgpKSkKcGFsZXR0ZV9zMyA8LSBjKHJlcChteVBhbGV0dGVbIk1JTkQiXSwgcGFsZXR0ZV9iYXNlICU+JSBmaWx0ZXIoczNfZmFjdG9yID09ICJNSU5EIikgJT4lIGNvdW50KCkpLAogICAgICAgICAgICAgICAgcmVwKG15UGFsZXR0ZVsiSEVBUlQiXSwgcGFsZXR0ZV9iYXNlICU+JSBmaWx0ZXIoczNfZmFjdG9yID09ICJIRUFSVCIpICU+JSBjb3VudCgpKSwKICAgICAgICAgICAgICAgIHJlcChteVBhbGV0dGVbIkJPRFkiXSwgcGFsZXR0ZV9iYXNlICU+JSBmaWx0ZXIoczNfZmFjdG9yID09ICJCT0RZIikgJT4lIGNvdW50KCkpKQpwYWxldHRlX3M0IDwtIGMocmVwKG15UGFsZXR0ZVsiTUlORCJdLCBwYWxldHRlX2Jhc2UgJT4lIGZpbHRlcihzNF9mYWN0b3IgPT0gIk1JTkQiKSAlPiUgY291bnQoKSksCiAgICAgICAgICAgICAgICByZXAobXlQYWxldHRlWyJIRUFSVCJdLCBwYWxldHRlX2Jhc2UgJT4lIGZpbHRlcihzNF9mYWN0b3IgPT0gIkhFQVJUIikgJT4lIGNvdW50KCkpLAogICAgICAgICAgICAgICAgcmVwKG15UGFsZXR0ZVsiQk9EWSJdLCBwYWxldHRlX2Jhc2UgJT4lIGZpbHRlcihzNF9mYWN0b3IgPT0gIkJPRFkiKSAlPiUgY291bnQoKSkpCmBgYAoKIyMgRmlndXJlIDEKCk1lYW4gcmF0aW5ncyBvZiA0MCBtZW50YWwgY2FwYWNpdGllcyBmb3IgYSBzdWJzZXQgb2YgdGhlIDIxIGVudGl0aWVzIGluY2x1ZGVkIGluIFN0dWR5IDQuIChTZWUgRmlnLiBTNSBmb3IgbWVhbiByYXRpbmdzIGZvciB0aGUgZnVsbCBzZXQgb2YgZW50aXRpZXMuKSBQYXJ0aWNpcGFudHMgcmVzcG9uZGVkIG9uIGEgc2NhbGUgZnJvbSAwIChOb3QgYXQgYWxsIGNhcGFibGUpIHRvIDYgKEhpZ2hseSBjYXBhYmxlKS4gRXJyb3IgYmFycyBhcmUgbm9ucGFyYW1ldHJpYyBib290c3RyYXBwZWQgOTUlIGNvbmZpZGVuY2UgaW50ZXJ2YWxzLiBNZW50YWwgY2FwYWNpdGllcyBhcmUgZ3JvdXBlZCBhY2NvcmRpbmcgdG8gdGhlaXIgZG9taW5hbnQgZmFjdG9yIGxvYWRpbmcgaW4gU3R1ZHkgMS4gKkRvaW5nIGNvbXB1dGF0aW9ucyogd2FzIHRoZSBvbmx5IGl0ZW0gdG8gbG9hZCBuZWdhdGl2ZWx5IG9uIGl0cyBkb21pbmFudCBmYWN0b3IgaW4gYW55IHN0dWR5IChhbmQgZGlkIHNvIGluIFN0dWRpZXMgMS0zKTsgaW4gU3R1ZHkgNCwgaXQgbG9hZGVkIHBvc2l0aXZlbHkgb24gaXRzIGRvbWluYW50IGZhY3RvciAoRmFjdG9yIDIsIOKAnGhlYXJ04oCdKS4KCmBgYHtyIGZpZ3VyZSAxfQojIG1ha2UgZGF0YWZyYW1lCnM0X3N1YnNldF9wbG90dGluZyA8LSBjaGFyX3Bsb3R0aW5nICU+JSAKICBmaWx0ZXIoc3R1ZHkgPT0gInN0dWR5IDQiLAogICAgICAgICBjb25kaXRpb24gJWluJSBjKCJzdGFwbGVyIiwgInJvYm90IiwgImJlZXRsZSIsICJnb2F0IiwgImVsZXBoYW50IiwgImFkdWx0IikpICU+JQogIGRpc3RpbmN0KCkKCiMgcGxvdCEgKG9yZGVyZWQgYnkgc3R1ZHkgMSBmYWN0b3IgbG9hZGluZ3MpCnM0X3N1YnNldCA8LSBnZ3Bsb3QoczRfc3Vic2V0X3Bsb3R0aW5nLCAKICAgICAgICAgICAgICAgYWVzKHggPSBtZWFuLCB5ID0gcmVvcmRlcih3b3JkaW5nLCBkZXNjKHMxX29yZGVyKSksIGNvbG91ciA9IHMxX2NvbG9yKSkgKwogIGdlb21fcG9pbnQoc3RhdCA9ICJpZGVudGl0eSIsIHBvc2l0aW9uID0gImlkZW50aXR5Iiwgc2l6ZSA9IDIpICsKICBnZW9tX2Vycm9yYmFyaChhZXMoeG1pbiA9IGNpX2xvd2VyLCB4bWF4ID0gY2lfdXBwZXIpLCBoZWlnaHQgPSAwLjQpICsKICBmYWNldF93cmFwKH4gY29uZGl0aW9uLCBuY29sID0gNiwKICAgICAgICAgICAgIGxhYmVsbGVyID0gbGFiZWxsZXIoY29uZGl0aW9uID0gZmFjZXRMYWJzX3M0KSkgKwogIHRoZW1lX2J3KCkgKwogIHRoZW1lKHRleHQgPSBlbGVtZW50X3RleHQoc2l6ZSA9IDkpLAogICAgICAgIGF4aXMudGl0bGUueSA9IGVsZW1lbnRfYmxhbmsoKSwKICAgICAgICBheGlzLnRleHQueSA9IGVsZW1lbnRfdGV4dChmYWNlID0gIml0YWxpYyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3VyID0gcGFsZXR0ZV9zMSksCiAgICAgICAgcGFuZWwuZ3JpZC5taW5vciA9IGVsZW1lbnRfYmxhbmsoKSwKICAgICAgICBsZWdlbmQucG9zaXRpb24gPSAibm9uZSIpICsKICBzY2FsZV94X2NvbnRpbnVvdXMobmFtZSA9ICJcbk1lYW4gcmF0aW5nIiwKICAgICAgICAgICAgICAgICAgICAgbGltaXRzID0gYygtMywgMyksCiAgICAgICAgICAgICAgICAgICAgIGJyZWFrcyA9IHNlcSgtMywgMywgMSksCiAgICAgICAgICAgICAgICAgICAgIGxhYmVscyA9IHNlcSgwLCA2LCAxKSkgKwogIHNjYWxlX2NvbG91cl9icmV3ZXIobmFtZSA9ICJGYWN0b3I6IiwKICAgICAgICAgICAgICAgICAgICAgIHR5cGUgPSAicXVhbCIsIHBhbGV0dGUgPSA2KQoKczRfc3Vic2V0CmBgYAoKIyMgRmlndXJlIFMxIChzdXBwb3J0aW5nIG1hdGVyaWFscykKCkZhY3RvciBsb2FkaW5ncyBmb3IgdGhlIDQwIG1lbnRhbCBjYXBhY2l0aWVzIG9uIHRoZSB0aHJlZSByb3RhdGVkIGZhY3RvcnMgaW4gU3R1ZHkgMS4gSXRlbXMgYXJlIGNvbG9yZWQgYnkgdGhlaXIgZG9taW5hbnQgZmFjdG9yIGxvYWRpbmc6IEl0ZW1zIHRoYXQgbG9hZGVkIG1vc3Qgc3Ryb25nbHkgb24gdGhlIGJvZHkgZmFjdG9yIChwaHlzaW9sb2dpY2FsIHN0YXRlcyBhbmQgd2lsbCkgYXJlIGluIHJlZDsgaXRlbXMgdGhhdCBsb2FkZWQgbW9zdCBzdHJvbmdseSBvbiB0aGUgaGVhcnQgZmFjdG9yIChzb2NpYWwtZW1vdGlvbmFsIGV4cGVyaWVuY2VzIGFuZCBtb3JhbGl0eSkgYXJlIGluIGJsdWU7IGFuZCBpdGVtcyB0aGF0IGxvYWRlZCBtb3N0IHN0cm9uZ2x5IG9uIHRoZSBtaW5kIGZhY3RvciAocGVyY2VwdHVhbC1jb2duaXRpdmUgYWJpbGl0aWVzIGFuZCBnb2FsIHB1cnN1aXQpIGFyZSBpbiBncmVlbi4KCmBgYHtyIGZpZ3VyZSBTMX0KIyBzZXQgdXAgbGFiZWxzIGZvciBwbG90IChzaG9ydGVuZWQgdmVyc2lvbiBvZiBtZW50YWwgY2FwYWNpdHkgaXRlbXMpCndvcmRpbmcgPC0gbG9hZGluZ3MoZWZhX2QxX2FsbF9yb3RhdGVkTilbXSAlPiUKICBkYXRhLmZyYW1lKCkgJT4lCiAgcm93bmFtZXNfdG9fY29sdW1uKHZhciA9ICJpdGVtIikgJT4lCiAgc2VsZWN0KGl0ZW0pICU+JQogIG11dGF0ZSh3b3JkaW5nID0gYygiZmVlbGluZyBoYXBweSIsICJmZWVsaW5nIGRlcHJlc3NlZCIsICJleHBlcmllbmNpbmcgZmVhciIsCiAgICAgICAgICAgICAgICAgICAgICJnZXR0aW5nIGFuZ3J5IiwgImZlZWxpbmcgY2FsbSIsICJkZXRlY3Rpbmcgc291bmRzIiwKICAgICAgICAgICAgICAgICAgICAgInNlZWluZyB0aGluZ3MiLCAic2Vuc2luZyB0ZW1wZXJhdHVyZXMiLCAiZGV0ZWN0aW5nIG9kb3JzIiwKICAgICAgICAgICAgICAgICAgICAgInBlcmNlaXZpbmcgZGVwdGgiLCAiZG9pbmcgY29tcHV0YXRpb25zIiwgImhhdmluZyB0aG91Z2h0cyIsCiAgICAgICAgICAgICAgICAgICAgICJyZWFzb25pbmcgYWJvdXQgdGhpbmdzIiwgInJlbWVtYmVyaW5nIHRoaW5ncyIsICJob2xkaW5nIGJlbGllZnMiLAogICAgICAgICAgICAgICAgICAgICAiZ2V0dGluZyBodW5ncnkiLCAiZmVlbGluZyB0aXJlZCIsICJleHBlcmllbmNpbmcgcGFpbiIsCiAgICAgICAgICAgICAgICAgICAgICJmZWVsaW5nIG5hdXNlYXRlZCIsICJmZWVsaW5nIHNhZmUiLCAiZmVlbGluZyBsb3ZlIiwKICAgICAgICAgICAgICAgICAgICAgInJlY29nbml6aW5nIHNvbWVvbmUiLCAiY29tbXVuaWNhdGluZyB3aXRoIG90aGVycyIsICJleHBlcmllbmNpbmcgZ3VpbHQiLAogICAgICAgICAgICAgICAgICAgICAiZmVlbGluZyBkaXNyZXNwZWN0ZWQiLCAiaGF2aW5nIGZyZWUgd2lsbCIsICJtYWtpbmcgY2hvaWNlcyIsCiAgICAgICAgICAgICAgICAgICAgICJleGVyY2lzaW5nIHNlbGYtcmVzdHJhaW50IiwgImhhdmluZyBpbnRlbnRpb25zIiwgIndvcmtpbmcgdG93YXJkIGEgZ29hbCIsCiAgICAgICAgICAgICAgICAgICAgICJiZWluZyBjb25zY2lvdXMiLCAiYmVpbmcgc2VsZi1hd2FyZSIsICJoYXZpbmcgZGVzaXJlcyIsCiAgICAgICAgICAgICAgICAgICAgICJmZWVsaW5nIGVtYmFycmFzc2VkIiwgInVuZGVyc3RhbmRpbmcgaG93IG90aGVycyBhcmUgZmVlbGluZyIsIAogICAgICAgICAgICAgICAgICAgICAiZXhwZXJpZW5jaW5nIGpveSIsICJ0ZWxsaW5nIHJpZ2h0IGZyb20gd3JvbmciLCAiaGF2aW5nIGEgcGVyc29uYWxpdHkiLAogICAgICAgICAgICAgICAgICAgICAiZXhwZXJpZW5jaW5nIHBsZWFzdXJlIiwgImV4cGVyaWVuY2luZyBwcmlkZSIpLAogICAgICAgICBzaG9ydCA9IGMoImhhcHBpbmVzcyIsICJkZXByZXNzaW9uIiwgImZlYXIiLAogICAgICAgICAgICAgICAgICAgImFuZ2VyIiwgImNhbG0iLCAic291bmQiLAogICAgICAgICAgICAgICAgICAgInNpZ2h0IiwgInRlbXBlcmF0dXJlIiwgIm9kb3IiLAogICAgICAgICAgICAgICAgICAgImRlcHRoIiwgImNvbXB1dGF0aW9uIiwgInRob3VnaHQiLAogICAgICAgICAgICAgICAgICAgInJlYXNvbmluZyIsICJtZW1vcnkiLCAiYmVsaWVmIiwKICAgICAgICAgICAgICAgICAgICJodW5nZXIiLCAidGlyZWRuZXNzIiwgInBhaW4iLAogICAgICAgICAgICAgICAgICAgIm5hdXNlYSIsICJzYWZldHkiLCAibG92ZSIsCiAgICAgICAgICAgICAgICAgICAicmVjb2duaXRpb24iLCAiY29tbXVuaWNhdGlvbiIsICJndWlsdCIsCiAgICAgICAgICAgICAgICAgICAiZGlzcmVzcGVjdCIsICJmcmVlIHdpbGwiLCAiY2hvaWNlIiwKICAgICAgICAgICAgICAgICAgICJzZWxmLXJlc3RyYWludCIsICJpbnRlbnRpb24iLCAiZ29hbCIsCiAgICAgICAgICAgICAgICAgICAiY29uc2Npb3VzbmVzcyIsICJzZWxmLWF3YXJlbmVzcyIsICJkZXNpcmUiLAogICAgICAgICAgICAgICAgICAgImVtYmFycmFzc21lbnQiLCAiZW1wYXRoeSIsIAogICAgICAgICAgICAgICAgICAgImpveSIsICJtb3JhbGl0eSIsICJwZXJzb25hbGl0eSIsCiAgICAgICAgICAgICAgICAgICAicGxlYXN1cmUiLCAicHJpZGUiKSkKCiMgbWFrZSBkYXRhZnJhbWUgZm9yIHBsb3R0aW5nCnNjYXR0ZXJfcGxvdHRpbmcgPC0gbG9hZGluZ3MoZWZhX2QxX2FsbF9yb3RhdGVkTilbXSAlPiUKICBkYXRhLmZyYW1lKCkgJT4lCiAgcm93bmFtZXNfdG9fY29sdW1uKHZhciA9ICJpdGVtIikgJT4lCiAgcmVuYW1lKEJPRFkgPSBNUjEsCiAgICAgICAgIEhFQVJUID0gTVIyLAogICAgICAgICBNSU5EID0gTVIzKSAlPiUKICBmdWxsX2pvaW4od29yZGluZykgJT4lCiAgbXV0YXRlKGRvbWluYW50ID0gZmFjdG9yKAogICAgaWZlbHNlKHBtYXgoYWJzKEJPRFkpLCBhYnMoSEVBUlQpLCBhYnMoTUlORCkpID09IGFicyhCT0RZKSwgIkJPRFkiLAogICAgICAgICAgIGlmZWxzZShwbWF4KGFicyhCT0RZKSwgYWJzKEhFQVJUKSwgYWJzKE1JTkQpKSA9PSBhYnMoSEVBUlQpLCAiSEVBUlQiLAogICAgICAgICAgICAgICAgICBpZmVsc2UocG1heChhYnMoQk9EWSksIGFicyhIRUFSVCksIGFicyhNSU5EKSkgPT0gYWJzKE1JTkQpLCAiTUlORCIsCiAgICAgICAgICAgICAgICAgICAgICAgICBOQSkpKSksCiAgICBzaXplID0gaWZlbHNlKHBtYXgoYWJzKEJPRFkpLCBhYnMoSEVBUlQpLCBhYnMoTUlORCkpID09IGFicyhCT0RZKSwgYWJzKEJPRFkpLAogICAgICAgICAgICAgICAgICBpZmVsc2UocG1heChhYnMoQk9EWSksIGFicyhIRUFSVCksIGFicyhNSU5EKSkgPT0gYWJzKEhFQVJUKSwgYWJzKEhFQVJUKSwKICAgICAgICAgICAgICAgICAgICAgICAgIGlmZWxzZShwbWF4KGFicyhCT0RZKSwgYWJzKEhFQVJUKSwgYWJzKE1JTkQpKSA9PSBhYnMoTUlORCksIGFicyhNSU5EKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOQSkpKSwKICAgIGNvbG9yID0gaWZlbHNlKGRvbWluYW50ID09ICJCT0RZIiwgIiNlNDFhMWMiLAogICAgICAgICAgICAgICAgICAgaWZlbHNlKGRvbWluYW50ID09ICJIRUFSVCIsICIjMzc3ZWI4IiwKICAgICAgICAgICAgICAgICAgICAgICAgICBpZmVsc2UoZG9taW5hbnQgPT0gIk1JTkQiLCAiIzRkYWY0YSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5BKSkpKQoKIyBwbG90IQpmaWdTMSA8LSBwbG90X2x5KHNjYXR0ZXJfcGxvdHRpbmcsIHggPSBIRUFSVCwgeSA9IEJPRFksIHogPSBNSU5ELAogICAgICAgICAgICAgdHlwZSA9ICJzY2F0dGVyM2QiLAogICAgICAgICAgICAgY29sb3IgPSBkb21pbmFudCwgY29sb3JzID0gYygiIzRkYWY0YSIsICIjZTQxYTFjIiwgIiMzNzdlYjgiKSwKICAgICAgICAgICAgIG1hcmtlciA9IGxpc3Qoc2l6ZSA9IDQpLAogICAgICAgICAgICAgdGV4dCA9IHNob3J0LAogICAgICAgICAgICAgdGV4dGZvbnQgPSBsaXN0KHNpemUgPSAxNSksCiAgICAgICAgICAgICBtb2RlID0gInRleHQrbWFya2VycyIsCiAgICAgICAgICAgICBzaG93bGVnZW5kID0gVFJVRSkKCmZpZ1MxCmBgYAoKIyMgRmlndXJlIFMyIChzdXBwb3J0aW5nIG1hdGVyaWFscykKCk1lYW4gcmF0aW5ncyBvZiA0MCBtZW50YWwgY2FwYWNpdGllcyBmb3IgdGhlIDIgZW50aXRpZXMgaW5jbHVkZWQgaW4gU3R1ZGllcyAxLTMuIFBhcnRpY2lwYW50cyByZXNwb25kZWQgb24gYSBzY2FsZSBmcm9tIDAgKE5vdCBhdCBhbGwgY2FwYWJsZSkgdG8gNiAoSGlnaGx5IGNhcGFibGUpLiBFcnJvciBiYXJzIGFyZSBub25wYXJhbWV0cmljIGJvb3RzdHJhcHBlZCA5NSUgY29uZmlkZW5jZSBpbnRlcnZhbHMuIE1lbnRhbCBjYXBhY2l0aWVzIGFyZSBncm91cGVkIGFjY29yZGluZyB0byB0aGVpciBkb21pbmFudCBmYWN0b3IgbG9hZGluZyBpbiBTdHVkeSAxLgoKYGBge3IgZmlndXJlIFMyfQojIG1ha2UgZGF0YWZyYW1lCnMxMjNfcGxvdHRpbmcgPC0gY2hhcl9wbG90dGluZyAlPiUgCiAgZmlsdGVyKHN0dWR5ICE9ICJzdHVkeSA0IikgJT4lCiAgZGlzdGluY3QoKQoKIyBwbG90ISAob3JkZXJlZCBieSBzdHVkeSAzIGZhY3RvciBsb2FkaW5ncykKczEyMyA8LSBnZ3Bsb3QoczEyM19wbG90dGluZywgCiAgICAgICAgICAgICAgIGFlcyh5ID0gbWVhbiwgeCA9IHJlb3JkZXIod29yZGluZywgZGVzYyhzMV9vcmRlcikpLCBjb2xvdXIgPSBzMV9jb2xvciwKICAgICAgICAgICAgICAgICAgIHNoYXBlID0gc3R1ZHkpKSArCiAgZ2VvbV9wb2ludChzdGF0ID0gImlkZW50aXR5IiwgcG9zaXRpb24gPSBwb3NpdGlvbl9kb2RnZSh3aWR0aCA9IDAuNiksIHNpemUgPSAyKSArCiAgZ2VvbV9lcnJvcmJhcihhZXMoeW1pbiA9IGNpX2xvd2VyLCB5bWF4ID0gY2lfdXBwZXIpLCB3aWR0aCA9IDAuNCwKICAgICAgICAgICAgICAgIHBvc2l0aW9uID0gcG9zaXRpb25fZG9kZ2Uod2lkdGggPSAwLjYpKSArCiAgZmFjZXRfd3JhcCh+IGNvbmRpdGlvbikgKwogIHRoZW1lX2J3KCkgKwogIHNjYWxlX3lfY29udGludW91cyhuYW1lID0gIlxuTWVhbiByYXRpbmciLAogICAgICAgICAgICAgICAgICAgICBsaW1pdHMgPSBjKC0zLCAzKSwKICAgICAgICAgICAgICAgICAgICAgYnJlYWtzID0gc2VxKC0zLCAzLCAxKSwKICAgICAgICAgICAgICAgICAgICAgbGFiZWxzID0gc2VxKDAsIDYsIDEpKSArCiAgc2NhbGVfc2hhcGVfZGlzY3JldGUobmFtZSA9ICJTdHVkeToiKSArCiAgc2NhbGVfY29sb3VyX2JyZXdlcihuYW1lID0gIkZhY3RvcjoiLAogICAgICAgICAgICAgICAgICAgICAgdHlwZSA9ICJxdWFsIiwgcGFsZXR0ZSA9IDYsCiAgICAgICAgICAgICAgICAgICAgICBndWlkZSA9IEZBTFNFKSArCiAgY29vcmRfZmxpcCgpICsKICB0aGVtZSh0ZXh0ID0gZWxlbWVudF90ZXh0KHNpemUgPSA5KSwKICAgICAgYXhpcy50aXRsZS55ID0gZWxlbWVudF9ibGFuaygpLAogICAgICBheGlzLnRleHQueSA9IGVsZW1lbnRfdGV4dChmYWNlID0gIml0YWxpYyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG91ciA9IHBhbGV0dGVfczEpLAogICAgICBwYW5lbC5ncmlkLm1pbm9yID0gZWxlbWVudF9ibGFuaygpLAogICAgICBsZWdlbmQucG9zaXRpb24gPSAicmlnaHQiKQoKczEyMwpgYGAKCiMjIEZpZ3VyZSBTMyAoc3VwcG9ydGluZyBtYXRlcmlhbHMpCgpNZWFuIHJhdGluZ3Mgb2YgNDAgbWVudGFsIGNhcGFjaXRpZXMgZm9yIGFsbCAyMSBlbnRpdGllcyBpbmNsdWRlZCBpbiBTdHVkeSA0LiBQYXJ0aWNpcGFudHMgcmVzcG9uZGVkIG9uIGEgc2NhbGUgZnJvbSAwIChOb3QgYXQgYWxsIGNhcGFibGUpIHRvIDYgKEhpZ2hseSBjYXBhYmxlKS4gRXJyb3IgYmFycyBhcmUgbm9ucGFyYW1ldHJpYyBib290c3RyYXBwZWQgOTUlIGNvbmZpZGVuY2UgaW50ZXJ2YWxzLiBNZW50YWwgY2FwYWNpdGllcyBhcmUgZ3JvdXBlZCBhY2NvcmRpbmcgdG8gdGhlaXIgZG9taW5hbnQgZmFjdG9yIGxvYWRpbmcgaW4gU3R1ZHkgNC4KCmBgYHtyIGZpZ3VyZSBTM30KIyBtYWtlIGRhdGFmcmFtZQpzNF9wbG90dGluZyA8LSBjaGFyX3Bsb3R0aW5nICU+JSAKICBmaWx0ZXIoc3R1ZHkgPT0gInN0dWR5IDQiKSAlPiUKICBkaXN0aW5jdCgpCgojIHBsb3QhIChvcmRlcmVkIGJ5IHN0dWR5IDQgZmFjdG9yIGxvYWRpbmdzKQpzNCA8LSBnZ3Bsb3QoczRfcGxvdHRpbmcsIAogICAgICAgICAgICAgICBhZXMoeCA9IG1lYW4sIHkgPSByZW9yZGVyKHdvcmRpbmcsIGRlc2MoczRfb3JkZXIpKSwgY29sb3VyID0gczRfY29sb3IpKSArCiAgZ2VvbV9wb2ludChzdGF0ID0gImlkZW50aXR5IiwgcG9zaXRpb24gPSAiaWRlbnRpdHkiLCBzaXplID0gMSkgKwogIGdlb21fZXJyb3JiYXJoKGFlcyh4bWluID0gY2lfbG93ZXIsIHhtYXggPSBjaV91cHBlciksIGhlaWdodCA9IDAuMDEpICsKICBmYWNldF93cmFwKH4gY29uZGl0aW9uLCBuY29sID0gMjEsCiAgICAgICAgICAgICBsYWJlbGxlciA9IGxhYmVsbGVyKGNvbmRpdGlvbiA9IGZhY2V0TGFic19zNCkpICsKICB0aGVtZV9idygpICsKICB0aGVtZSh0ZXh0ID0gZWxlbWVudF90ZXh0KHNpemUgPSA2KSwKICAgICAgICBheGlzLnRpdGxlLnkgPSBlbGVtZW50X2JsYW5rKCksCiAgICAgICAgYXhpcy50ZXh0LnkgPSBlbGVtZW50X3RleHQoZmFjZSA9ICJpdGFsaWMiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG91ciA9IHBhbGV0dGVfczQpLAogICAgICAgIHBhbmVsLmdyaWQubWlub3IgPSBlbGVtZW50X2JsYW5rKCksCiAgICAgICAgbGVnZW5kLnBvc2l0aW9uID0gIm5vbmUiKSArCiAgc2NhbGVfeF9jb250aW51b3VzKG5hbWUgPSAiXG5NZWFuIHJhdGluZyIsCiAgICAgICAgICAgICAgICAgICAgIGxpbWl0cyA9IGMoLTMsIDMpLAogICAgICAgICAgICAgICAgICAgICBicmVha3MgPSBzZXEoLTMsIDMsIDEpLAogICAgICAgICAgICAgICAgICAgICBsYWJlbHMgPSBzZXEoMCwgNiwgMSkpICsKICBzY2FsZV9jb2xvdXJfYnJld2VyKG5hbWUgPSAiRmFjdG9yOiIsCiAgICAgICAgICAgICAgICAgICAgICB0eXBlID0gInF1YWwiLCBwYWxldHRlID0gNikKCnM0CmBgYAoK